0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 93
|
||||||
1 | ||||||
Шаблон, специализация: поиск самой большой строки в массиве указателей на char19.06.2010, 01:49. Просмотров 1883. Ответов 8
Метки нет Все метки)
(
Есть почти готовое решение,помогите пожалуйста доделать,немного не понимаю
0
|
|
19.06.2010, 01:49 | |
Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей
Поиск самой длинной строки в массиве Объяснить различия в работе указателей на целое число и указателей на const char (строки в стиле Си) |
|
Maniac
![]() |
||||||
19.06.2010, 04:03 | 2 | |||||
1
|
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 93
|
|
19.06.2010, 12:16 [ТС] | 3 |
Скажите пожалуйста,а почему нельзя использовать функция void не возвращающую указатель,а непосредственно выводящую результат внутри себя через cout?
0
|
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 93
|
||||||
19.06.2010, 12:33 [ТС] | 5 | |||||
Я сделал,но комп-р ругается(на строчке прототипирования специализации и выдаёт сообщение типа:template-id`maxn<>'for`const char* maxn(const char**,int)'does not match any template declaration) =) Использую wxDev-C++
Или не нужно определение шаблона?Што то я немного не пойму?(Сама задача:Создайте шаблон функции maxn(),которая принимает в качестве аргумента массив элементов типа T и целое число,представляющее собой кол-во элементов в массиве,а возвращает элемент с наибольшим значением.Протестируйте её работу в программе,которая использует шаблон данной функции с массивом из 6 значений типа int и массивом из 4 значений типа double.Программа также должна включать специализацию,которая использует в качестве аргумента массив указателей на char и кол-во указателей в качестве второго аргумента,а затем возвращает адрес самой длинной строки.Если имеется более одной строки наибольшей длины,функция возвращает адрес первой из них.Выполнить проверку специализации на примере массива,состоящего из 5-и указателей на строки.)
0
|
Maniac
![]() |
||||||
25.06.2010, 17:27 | 6 | |||||
Вот поправил..
0
|
0 / 0 / 1
Регистрация: 15.11.2009
Сообщений: 93
|
|
25.06.2010, 19:27 [ТС] | 7 |
Благодарю! Я понял,что специализация основана на шаблоне.Т.е. когда создаётся специализация то она создаётся по подобию исходного шаблона. А в шаблоне
template <typename T> T maxn(...), под именем T подразумевается как бы любой тип данных который нам будет нужен. Если не так поправьте меня=)
0
|
Модератор
![]() ![]() ![]() ![]() 10897 / 6813 / 1623
Регистрация: 25.07.2009
Сообщений: 12,515
|
|
25.06.2010, 19:42 | 8 |
0
|
Maniac
![]() |
||||||
25.06.2010, 20:14 | 9 | |||||
easybudda, Это специализация шаблона.. если стандартный шаблон не подходит под некоторую реализацию то можно сделать ее специализацию под конкретный тип данных..
По большей части применяется в мета-программировании...
Доволи не плохо все это описано в книге Шаблоны C++. Справочник разработчика
2
|
25.06.2010, 20:14 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Найти и вывести размер самой большой строки в текстовом файле Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |