Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
#1

Шаблонные функции - C++

07.02.2011, 11:20. Просмотров 1111. Ответов 10
Метки нет (Все метки)

Чет не получается написать шаблонную функцию.

func.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
template <class T>
T strnstr (T str, T substr, unsigned int count)
{
    T* str1;
    T* str2 = substr;
 
    while(count)
    {
        str1=str;
 
        while(count-- && *str++ == *str2++)
        {
            if(!*str2) return str1;
 
            if(!count) return NULL;
        }
        
        str2 = substr;
    }
    
    return NULL;
}
вызов

mail.cpp
C++
1
char* passwordHeader = strnstr(reinterpret_cast<char*>(accountPtr), "Password",fileSize-i-sizeof(signature));
Error 14 error C2995: 'T strnstr(T,T,unsigned int)' : function template has already been defined
Error 10 error C2782: 'T strnstr(T,T,unsigned int)' : template parameter 'T' is ambiguous
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2011, 11:20     Шаблонные функции
Посмотрите здесь:

Шаблонные функции - C++
Доброго времени суток. Есть шаблонная функция(двоичный сумматор прямого кода): template &lt;class T&gt; void Main_register::badc(T *regist, T...

Шаблонные функции - C++
Помогите, пожалуйста, реализовать шаблонную функцию, которая переставляет элементы в массиве

Шаблонные функции - C++
Любимой нужно, это свято... Поэтому прошу помощи... Перегрузить операторы &gt;, &lt;, == для класса Книга относительно сравнения года...

Шаблонные функции - C++
1) Написать шаблонную функцию для нахождения минимального из трех передаваемых чисел (для чисел типа int, double, char). В функции...

Шаблонные функции - C++
С помощью http://ru.wikipedia.org/wiki/Шаблоны_C%2B%2B пытался написать программу с шаблонной функцией по примеру использования который там...

Шаблонные функции - C++
Такой код работает. #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstring&gt; using namespace std; template &lt;typename T&gt; T...

Шаблонные функции - C++
Помогите, пожалуйста, реализовать шаблонную функцию определения, есть ли число в массиве

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
07.02.2011, 12:03     Шаблонные функции #2
Saiberg, а зачем тебе здесь шаблон, если ты точно знаешь, что будешь передавать в функцию только «char *» при том, что есть такая же стандартная функция.
Да и вообще, удобнее «std::string» использовать.
Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
07.02.2011, 12:07  [ТС]     Шаблонные функции #3
wchar_t еще может быть
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
07.02.2011, 12:17     Шаблонные функции #4
Используй std::string. Там этот функционал заложен.
Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
07.02.2011, 13:11  [ТС]     Шаблонные функции #5
ну подскажи тогда пожалуйста функцию\метод который ищет подстроку пропуская \0 и может иметь на входе char\wchar_t ,я токую не знаю.
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
07.02.2011, 13:26     Шаблонные функции #6
Saiberg, если ты сравниваешь строки, то зачем пропускать нулевой символ? Как иначе определить, что строка закончилась?
Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
07.02.2011, 13:28  [ТС]     Шаблонные функции #7
3 параметр это длина "основной" строки. токая функция мне нужна что бы найти строку в файле...
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
07.02.2011, 15:26     Шаблонные функции #8
если нужно найти одну последовательность в другой то search()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
#include<algorithm>
using namespace std;
 
int main(){
    char mas[]={'\0', 'r', '\n', 'a', '%', 'd', '\0', 'r', '*'}, *p=mas;
    char sea[]={'\0', 'r'};
    int ind;
    while((ind=search(p, mas+sizeof(mas), sea, sea+sizeof(sea))-mas)!=sizeof(mas)){
        p=mas+ind+sizeof(sea);
        cout<<"index= "<<ind<<"\n";
    }
}
Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
07.02.2011, 17:42  [ТС]     Шаблонные функции #9
все же в чем ошибка?(как заставить мою шаблонную функцию работать)

search вроде подходит
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
07.02.2011, 17:59     Шаблонные функции #10
C++
1
2
T str1;
T str2 = substr;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2011, 18:27     Шаблонные функции
Еще ссылки по теме:

Шаблонные функции в C++ - C++
Каждый раз когда вижу код, который должен быть простым и понятным, я понимаю его немного хуже. Вот наш код: template &lt;typename T,...

шаблонные функции - C++
доброго времени суток уважаемые форумчане, помогите пожалуйста разобраться с шаблонными функциями, читал про них много но так и не понял...

Шаблонные функции - C++
Читал у Праты про шаблонные функции, и везде они описаны наподобие template &lt;typename Any&gt; void Swap (Any &amp;a, Any &amp;b) А если нужно...

шаблонные функции. Ошибка - C++
Не признаёт среднее значение и нулевой элемент. #include &quot;stdafx.h&quot; #include &lt;iomanip&gt; #include &lt;iostream&gt; #include &lt;time.h&gt; ...

Шаблонные функции и классы - C++
Добрый день. У меня возникли проблемки при использование шаблонных функций. Вот код class LineTable{ private: AnsiString...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Saiberg
19 / 19 / 1
Регистрация: 23.09.2010
Сообщений: 193
07.02.2011, 18:27  [ТС]     Шаблонные функции #11
Все равно не работает... Ошибки те же
Yandex
Объявления
07.02.2011, 18:27     Шаблонные функции
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru