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

Поиск палиндрома. Итераторы. [ error: no matching function for call to ‘copy_if . ' ] - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с динамического массивом - ошибка при попытке ввода http://www.cyberforum.ru/cpp-beginners/thread1211835.html
При простой попытке ввода выскакивает ошибка, что кириллица, что английский - ответ один и тот же. Что я упустил? #include <vcl.h> #include <iostream.h> #include <string.h> #pragma hdrstop #pragma argsused using namespace std; class ECM { char* type;
C++ Надо написать с использованием func функции Надо написать с помощью функции срочно пожалуйста полностью программу завтра сдавать y=((pow(x,3)+2*a*x)/(sqrt(x+3))+3+x*3)/pow(x-1,2); http://www.cyberforum.ru/cpp-beginners/thread1211828.html
Поверхность некоторого тела покрыто n = 4 треугольными пластинами C++
Поверхность некоторого тела покрыто n = 4 треугольными пластинами. Координаты первой пластины, уi1, zi1, xi2, yi2, zi2, xi3, yi3, zi3, i = 1, ..., N. Пластины не накладываются друг на друга. С точки (х0, у0, z0) вертикально вверх выходит луч. Определить через внутренние точки скольких пластин проходит этот луч.
C++ Ссылка на неразрешенный внешний символ, LNK2019
Имеется две функции: // объявления template <class Type> class QueueTp { .... bool push(const Type& t); bool pop(); .... }
C++ Откуда берутся лишние элементы? http://www.cyberforum.ru/cpp-beginners/thread1211767.html
String String::operator + (String right){ int len = strlen(this->myString) + strlen(right.myString); cout << len<< endl;// 14 char *temp1 = new char; cout << "temp " << strlen(temp1) << " temp *" << endl;//32 }
C++ Написать программу, которая вычерчивает на экране кораблик c++ Написать программу, которая вычерчивает на экране кораблик c++ подробнее

Показать сообщение отдельно
andrejap
13 / 13 / 1
Регистрация: 21.04.2013
Сообщений: 245
18.06.2014, 22:44     Поиск палиндрома. Итераторы. [ error: no matching function for call to ‘copy_if . ' ]
Здравствуйте.

Задача поиска палиндрома (выражения, в котором не имеет значение направление чтения букв). Сказано, чтобы не буквы игнорировались. Вот код:
C++
1
2
3
4
5
6
7
bool check( const string& s) {
    string temp = "", rtemp = "";
    copy_if(s.cbegin(), s.cend(), front_insert_iterator<string>(temp), isalpha);
    copy(temp.cbegin(), temp.cend(), back_insert_iterator<string>(rtemp));
    
    return temp == rtemp ? true : false ;
}
Компилятор выводит вот что:
Кликните здесь для просмотра всего текста
main.cpp:28:79: error: no matching function for call to ‘copy_if(std::basic_string<char>::const_iterator, std::basic_string<char>::const_iterator, std::front_insert_iterator<std::basic_string<char> >, <unresolved overloaded function type>)’
copy_if(s.cbegin(), s.cend(), front_insert_iterator<string>(temp), isalpha);
^
main.cpp:28:79: note: candidate is:
In file included from /usr/include/c++/4.8/algorithm:62:0,
from main.cpp:10:
/usr/include/c++/4.8/bits/stl_algo.h:974:5: note: template<class _IIter, class _OIter, class _Predicate> _OIter std::copy_if(_IIter, _IIter, _OIter, _Predicate)
copy_if(_InputIterator __first, _InputIterator __last,
^
/usr/include/c++/4.8/bits/stl_algo.h:974:5: note: template argument deduction/substitution failed:
main.cpp:28:79: note: couldn't deduce template parameter ‘_Predicate’
copy_if(s.cbegin(), s.cend(), front_insert_iterator<string>(temp), isalpha);


Режим C++11 включен. Что не так с предикатом - не пойму. Помогите разобраться, пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru