![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.06.2009
Сообщений: 12
|
![]()
Итак
Текст задания: Написать специализацию шаблона функции поиска для массива строк То что я сделал: #include<iostream> #include<cmath> #include<cstring> using namespace std; template <class A, class B> int find(A* p, int N, A pp) { int i, g=-1; for(i=0; i<N; i++) if(B::less(p[i], pp)) g=i; return g; } template <class A, class B> int find(A p, int N, A pp) { int i, g=-1; for(i=0; i<N; i++) if(B::less(p[i], pp)) g=i; return g; } template<class A> class C { public: static bool less(A a, A b) { return a==b; } }; void main() { char* A[]={"Time", "is", "money"}; int a=find<char, C<char> > (A[1], 3, "is"); } Код ошибки: --------------------Configuration: makaka - Win32 Debug-------------------- Compiling... f.cpp C:\makaka\f.cpp(39) : error C2665: 'find' : none of the 2 overloads can convert parameter 3 from type 'char [3]' Error executing cl.exe. f.obj - 1 error(s), 0 warning(s) Не могу понять что требуется исправить |
![]() |
![]() |
![]() |
#2 |
Maniac
Форумчанин
Регистрация: 03.01.2009
Сообщений: 450
|
![]()
так покатит.
Код:
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.06.2009
Сообщений: 12
|
![]()
Спасибо тебе буквально 10 часов сидел думал что сделать и вот ты пришел мне на помощь =)
завтра благодаря тебе может получу автомат =) |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 07.06.2009
Сообщений: 12
|
![]()
Что такое typename
|
![]() |
![]() |
![]() |
#5 |
Maniac
Форумчанин
Регистрация: 03.01.2009
Сообщений: 450
|
![]()
Ключевое слово typename задает так называемый параметр типа.
В силу исторических причин для определения параметра типа разрешается применение вместо typename ключевого слова class. Ключевое слово typename в ходе эволюции языка C++ появилось относительно недавно, а до этого единственным способом задания параметра типа было ключевое слово class. Применение class для определения параметра типа корректно и сегодня. в общем это Код:
Код:
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 07.06.2009
Сообщений: 12
|
![]()
И не знаю что сказать теперь добавлю закладку а то на 10 форумах создал тему 0 внимания и только на этом ответили мне =)
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 07.06.2009
Сообщений: 12
|
![]()
извини что пришлось так испоганить твой код у нас просто преподаватель такой =)
#include<iostream> using namespace std; template<typename T> class pred { public: bool operator()(T *a, T *b) { return strcmp(a,b); } }; template<typename first, typename T, typename _pred> int find(first elem, int max, T xz , _pred pr){ for(int i=0; i<max; i++){ if(!pr(elem[i],xz)) return i; } return -1; } void main() { char* a[]={"Time", "is", "money"}; char money[] = "money"; int index=find(a, 3,money,pred<char>()); if(index!=-1) cout<<"Index elementa raven "<<index; else cout<<"Takoe slovvo ne naydeno"; } |
![]() |
![]() |
![]() |
#8 |
Maniac
Форумчанин
Регистрация: 03.01.2009
Сообщений: 450
|
![]()
для полного счастья нужно так доделать
Код:
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
чтение макросов из закрытого шаблона | viter.alex | Microsoft Office Word | 0 | 30.01.2009 12:16 |
Копирование файла-шаблона | Siver | Microsoft Office Excel | 3 | 26.12.2008 04:28 |
можно ли распознать картинку при помощи шаблона? | DoktorX | Общие вопросы Delphi | 4 | 17.11.2006 07:13 |