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

std::bind1st: is not a class, struct, or union type - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Для заданных n чисел подсчитать сумму всех положительных http://www.cyberforum.ru/cpp-beginners/thread901647.html
Написать программу через цикл for. Для заданных n чисел подсчитать сумму всех положительных.
C++ Поиск одинаковых симоволов в строке Привет! Совсем запутался, понимаю что задача простая но никак не найду верного алгоритма. Есть указатель на строку, например char * str1 ( вне й есть символы "abcda"), нужно написать алгоритм поиска одинаковых символов и если такие найдены создань новый указатель в котором одинаковых символов уже не будет! пример: char * str2 - в которой уже должно быть "abcd" подскажите плз... http://www.cyberforum.ru/cpp-beginners/thread901645.html
C++ В заданной строке подсчитать сколько раз встречается символ "*" и сколько раз символ "+"
Итак, сама задача: В заданной строке подсчитать сколько раз встречается символ "*" и сколько раз символ "+". Указать смещение каждого вхождения относительно предыдущего вхождения. Помогите пожалуйста!
C++ Подскажите библиотеку для создание графического интерфейса
Погуглил .. много разных библиотек нагуглил. Сам никогда не использовал ничего, кроме стандартных тулкитов MSVS ... Нужна библиотека .. для создание Frame, Button и еще элемента .. в который можно было бы "впихнуть" рисунок, каждый пиксель которого описывается 16 битами, ну и поддерживаемые приколы с выделением пользователем точек на рисунки и т.д... Поскольку опыта нету, а идут жесткие баталии...
C++ Найти пересечение, объединение, разность, симметрическую разность множеств http://www.cyberforum.ru/cpp-beginners/thread901624.html
Задание: Написать программу, которая проделывается операции над множествами (пересечение, объединение, разность, симметрическую разность) #include <iostream> #include <algorithm> using namespace std; void show(const char *s, const int *begin, const int *end) { cout <<s << " "; copy(begin, end, ostream_iterator <int> (cout," " )) ; cout<< endl;
C++ На С++ Билдер 6 (Описать функцию, располагающую столбцы целочисленного двумерного массива в порядке убывания элементов k-ой строки) Помогите пожалуйста написать программу,очень надо=(!!!! Описать функцию, располагающую столбцы целочисленного двумерного массива в порядке убывания элементов k-ой строки (предлагаем что все элементы строки различны). Используя эту функцию, отсортировать столбцы данного массива подробнее

Показать сообщение отдельно
sl_k
12 / 12 / 0
Регистрация: 15.04.2010
Сообщений: 61
14.06.2013, 13:53     std::bind1st: is not a class, struct, or union type
Добрый день, пытаюсь найти элемент в списки указателей на объекты классачерез предикат. Вот упрощенный пример:
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
29
30
31
32
33
#include <algorithm>
#include <functional>
#include <list>
class classA{
     public:
         classA(int A): var(A) {};
         int getVar() {return var;};
     private:
         int var;
};
 
// предикат
bool pointee_is_equal(int s, classA* p) {
    return s == p->getVar();
}
 
int main()
{
 
 
std::list<classA*> listA;
for (int i = 0; i < 10; i++)
    listA.push_back(new classA(i));
 
 
int int_to_be_found = 6;
 
// нужен итератор, который начинается с элемента листа со значенем var=6
std::list<int>::iterator matching_iter =
              std::find_if(listA.begin(), listA.end(),
                          std::bind1st(pointee_is_equal, int_to_be_found));
return 0;
}
На что мне компилятор говорит

Bash
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
In file included from /usr/include/c++/4.6/bits/stl_function.h:731:0,
                 from /usr/include/c++/4.6/functional:50,
                 from test.cpp:2:
/usr/include/c++/4.6/backward/binders.h: In instantiation of ‘std::binder1st<bool(int, classA*)>’:
test.cpp:30:73:   instantiated from here
/usr/include/c++/4.6/backward/binders.h:100:11: error: ‘bool(int, classA*)’ is not a class, struct, or union type
/usr/include/c++/4.6/backward/binders.h:106:48: error: ‘bool(int, classA*)’ is not a class, struct, or union type
/usr/include/c++/4.6/backward/binders.h:109:7: error: ‘bool(int, classA*)’ is not a class, struct, or union type
/usr/include/c++/4.6/backward/binders.h:114:7: error: ‘bool(int, classA*)’ is not a class, struct, or union type
/usr/include/c++/4.6/backward/binders.h:120:7: error: ‘bool(int, classA*)’ is not a class, struct, or union type
/usr/include/c++/4.6/backward/binders.h:105:18: error: field ‘std::binder1st<bool(int, classA*)>::op’ invalidly declared function type
test.cpp: In function ‘int main()’:
test.cpp:30:74: error: conversion from ‘std::_List_iterator<classA*>’ to non-scalar type ‘std::list<int>::iterator {aka std::_List_iterator<int>}’ requested
In file included from /usr/include/c++/4.6/bits/stl_function.h:731:0,
                 from /usr/include/c++/4.6/functional:50,
                 from test.cpp:2:
/usr/include/c++/4.6/backward/binders.h: In function ‘std::binder1st<_Operation> std::bind1st(const _Operation&, const _Tp&) [with _Operation = bool(int, classA*), _Tp = int]’:
test.cpp:30:73:   instantiated from here
/usr/include/c++/4.6/backward/binders.h:129:56: error: ‘bool(int, classA*)’ is not a class, struct, or union type
In file included from /usr/include/c++/4.6/algorithm:63:0,
                 from test.cpp:1:
/usr/include/c++/4.6/bits/stl_algo.h: In function ‘_InputIterator std::__find_if(_InputIterator, _InputIterator, _Predicate, std::input_iterator_tag) [with _InputIterator = std::_List_iterator<classA*>, _Predicate = std::binder1st<bool(int, classA*)>]’:
/usr/include/c++/4.6/bits/stl_algo.h:4427:41:   instantiated from ‘_IIter std::find_if(_IIter, _IIter, _Predicate) [with _IIter = std::_List_iterator<classA*>, _Predicate = std::binder1st<bool(int, classA*)>]’
test.cpp:30:74:   instantiated from here
/usr/include/c++/4.6/bits/stl_algo.h:146:7: error: no match for call to ‘(std::binder1st<bool(int, classA*)>) (classA*&)

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