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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
9h05t
4 / 4 / 0
Регистрация: 07.05.2009
Сообщений: 29
#1

Проблема с std::find_if - C++

03.10.2011, 12:14. Просмотров 1412. Ответов 0
Метки нет (Все метки)

Здравствуйте, есть такой пример использования алгоритма из стандартной библиотеки:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <vector>
#include <algorithm>
 
int main()
{
   class LP
   {
       public: bool operator ()(const std::pair<int, int>& p) { return p.first > 0; }
   };
 
   std::vector<std::pair<int, int> > t;
   std::find_if(t.begin(), t.end(), LP());
 
   return 0;
}
при компиляции gcc вот такая ошибка:

C++
1
no matching function for call to ‘find_if(__gnu_cxx::__normal_iterator<std::pair<int, int>*, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > >, __gnu_cxx::__normal_iterator<std::pair<int, int>*, std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > > >, main()::LP)
Хотя судя из описания функции http://www.cplusplus.com/reference/algorithm/find_if/ все правильно. Кстати, в студии компилируется.

В чём может быть бок?

Блин, кажется ошибся форумом :/ сори

Добавлено через 1 час 3 минуты
вспомнил
вложенные классы не могут быть шаблонными
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2011, 12:14     Проблема с std::find_if
Посмотрите здесь:

Error in std::find_if - C++
Привет всем. Подскажите плз. Что std::find_if не поддерживает обратных итераторов? Почему этот код вызывает ошибку компиляции? ...

Как использовать std::find_if? - C++
Добрый день! Хочу использовать find_if, в реализации сортировки вставками. Но с синтаксисом у меня проблема. Помогите исправить код ...

Find_if - C++
#include &quot;stdafx.h&quot; #include &lt;vector&gt; #include &lt; map&gt; #include &lt;string&gt; #include &lt;algorithm&gt; using namespace std; class...

algorithm: find_if - C++
В етой задачке должно виводить симетрическии числа но не делает етого Почему подскажите:-#include&lt;iostream&gt; #include&lt;algorithm&gt; ...

Ошибка. Алгоритм find_if() - C++
Подскажите пожалуйста, почему в данной программе, если ввести &quot;левое&quot; значение, то программа заканчивается аварийно? Как я понимаю, то...

stl find_if msvs6.0 - C++
Здравствуйте! У меня вопрос: почему алгоритмы из &lt;algorithm&gt; в вижуал студио 6 не работают? тоесть выдает такие ошибки на такой код: ...

find_if, нужна помощь - C++
Здравствуйте! Помогите решить проблему пожалуйста. Тут все просто, но у меня куча ошибок ( Вот структура struct HardWare { ...

Передача параметра предикату в find_if - C++
скажите, можно ли так сдалать: it - итератор it=find_if(it=stud.begin(),it!=stud.end(),function(name)) я хочу булевской функции...

Можно ли применить find_if к вектору - C++
Можно ли применить find_if к вектору? Нужно найти среди компонент вектора первое число, которое больше задаваемой величины (в векторе...

Lambda expressions only available with -std=c++11 or -std=gnu++11 - C++
Нужна помощь. Код: #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;algorithm&gt;

Быстродействие std::unordered_map vs. std::unordered_multimap - C++
Привет, скажите пожалуйста, есть какие-либо существенные просадки по скорости исполнения программы, если использовать...

Lambda expressions only available with -std=c++11 or -std=gnu++11 - C++
В студии все работает, в qt попробовал mingw - выводит варнинг lambda expressions only available with -std=c++11 or -std=gnu++11 а...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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