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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
#1

Функция find - C++

28.08.2011, 21:11. Просмотров 2232. Ответов 3
Метки нет (Все метки)

Почему

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <iterator>
#include <string>
#include <algorithm>
using namespace std;
 
template<typename first, typename second>
int find2(first str, second to_find)
{
    int n=0;
    typename first::const_iterator ite=find(str.begin(),str.end(),to_find);
    while(ite!=str.end())
    {
        n++;
        ite++;
        ite=find(ite,str.end(),to_find); //ТАК
    }
 
    return n;
};
 
 
int main()
{
    string str="string's";
    char t='s';
    cout<<find2(str,t);
}
нельзя?
Ведь когда я писал не шаблонную функцию то при передаче поиску моего итератора в виде первого аргумента всё было ок, но стоило мне сделать мою функцию шаблоном как тут же появилась ошибка.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2011, 21:11     Функция find
Посмотрите здесь:

Функция find - C++
Что значит строчка: if(s.find(str,0) != -1)

Функция find - C++
Почему не работает функция find?? Дело в библиотеке??Я смотрел проекты там она была написана с библиотекой &quot;stdafx.h&quot;..но у меня с этой...

Как использовать функции string::find или функция strstr(str1 ,str2) - C++
как использовать функции string::find или функция strstr(str1 ,str2) Добавлено через 3 минуты вернее какой у них синтаксис привдети...

Как минимально просто использовать функция std::find с последовательность типа : list<myClass*> - C++
Добрый день. Как минимально просто использовать функция std::find с последовательность типа : list&lt;myClass*&gt;,если в классе перегружен...

STL find - C++
deleted нашел

Cannot find -lbgi - C++
Подскажите, пишу в Dec C++ простой графический код: #include &lt;graphics.h&gt; int main() { initwindow(400,300); // открыть окно для...

find() from string! - C++
Ищу в строке вхождения подстроки, запоминаю номер. Если нашел, то удаляю подстроку и вставляю соответствующий ей ключ с той же позиции. ...

Find из string.h - C++
Расскажите про функцию find из библиотеки строк. Не получается использовать, и какое значение она выдает, если в строке подстроки не...

Некорректно работает find - C++
Дано:

Std::multiset::find - C++
Каким образом функция сравнивает элементы, если я не перегрузил == У меня в классе два поля, она сравнивает их оба на соответствие? ...

оператор find в stl - C++
Допустим у меня есть такой код: #include &lt;vector&gt; #include &lt;algorithm&gt; #include &lt;string&gt; #include &lt;windows.h&gt; #include &lt;iostream&gt;...

Метод find класса string - C++
У меня задание: нужно написать программу, которая находит текст, в файле, показывает номер строки и саму строку, в которой текст находится....


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
28.08.2011, 21:23     Функция find #2
просто ite и str.end() получились разными итераторами. Первый const, второй нет. Так что либо использовать для ite не константный итератор, либо указать функции find специализацию первого параметра явно.
Правда без typedef следующая запись выглядит жутковато:
C++
1
ite=find<typename first::const_iterator>(ite,str.end(),to_find);
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
28.08.2011, 21:27  [ТС]     Функция find #3
grizlik78, ага, вот в чём дело, вот так бы компилятор и написал бы, ато по той информации что он выдал сложно догадаться что было не так.
grizlik78
Эксперт С++
1903 / 1435 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
28.08.2011, 21:32     Функция find #4
Ну мне он примерно так и написал
error: no matching function for call to ‘find(std::basic_string<char>::const_iterator&, std::basic_string<char>::iterator, char&)’
Yandex
Объявления
28.08.2011, 21:32     Функция find
Ответ Создать тему
Опции темы

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