Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
#1

Как вызвать метод для for_each? - C++

29.08.2013, 22:42. Просмотров 663. Ответов 5
Метки нет (Все метки)

Здравствуйте. Мне нужно вызвать один метод для коллекции объектов. Что то вроде такого
C++
1
std::for_each( container.begin(), containter.end(), &Class::method );
Но на такую контсрукцию оно ругается. Подскажите как быть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.08.2013, 22:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как вызвать метод для for_each? (C++):

Как вызвать прегруженный const метод для статического объекта - C++
class A { public: A() { cout << "A()" << endl; } ~A() { cout << "~A()" << endl; } void foo() { cout << "foo 1_1"; } ...

Метод в for_each - C++
Привет всем. Есть класс и структурка: struct Foo { Foo(): name("nx"), val(9) {} string name; int...

Как вызвать метод класса? - C++
User.cpp User::User(string name): name(name), price(0), amount(0) { cout <<"User has been create"; } ...

Как вызвать из метода метод? - C++
Здравствуйте. Прошу Вас помочь. Как мне вызвать из метода Set метод Draw? Мне надо передать объект A в Draw (у которого есть координаты x и...

Как вызвать метод объекта из контейнера? - C++
Есть абстрактный класс E, производный от CObject, в нем чистая виртуальная войдовская функция. Создал динамические объекты классов, которые...

Как вызвать метод родительского класса; - C++
Собственно вопрос; Есть класс a и b; Класс b унаследован от класса a; И как теперь из класса b вызвать функцию класса a;

5
xSCJx
22 / 19 / 1
Регистрация: 24.12.2012
Сообщений: 435
29.08.2013, 22:46 #2
mem_fun(), mem_fun_ref
1
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
29.08.2013, 22:46 #3
C++
1
2
3
#include <functional>
// ...
std::for_each( container.begin(), containter.end(), std::mem_fn(&Class::method) );
Если не mem_fn, то mem_fun\mem_fun_ref
1
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
29.08.2013, 22:55  [ТС] #4
Спасибо всем. Смотрел на cplusplus, но там как то мутно написано как оно работает. Не могли бы вы еще в двух словах объяснить, как такое шаманство работает.
0
kvadro
11 / 9 / 1
Регистрация: 12.03.2012
Сообщений: 127
29.08.2013, 23:03 #5
std::mem_fn создаёт обёртку над членом класса
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.08.2013, 23:54 #6
c++11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <functional>
#include <algorithm>
#include <iostream>
#include <vector>
 
struct foo
{
    void bar(std::ostream& os) const
    {
        os << this << " is foo" << std::endl;
    }
};
 
int main()
{
    using namespace std::placeholders;
    std::vector<foo> vec = { foo(), foo(), foo() };
    std::for_each(std::begin(vec)
                 , std::end(vec)
                 , std::bind(&foo::bar, _1, std::ref(std::cout)));
}
1
29.08.2013, 23:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2013, 23:54
Привет! Вот еще темы с ответами:

Как правильно вызвать метод в С++ и как использовать команду goto в default - C++
#include &lt;iostream&gt;; #include &lt;conio.h&gt;; using namespace std; void main() { setlocale(LC_ALL, &quot;Rus&quot;); calculate(); ...

Как вызвать метод вектора из динамического массива? - C++
vector&lt;some_type&gt; *t=new vector&lt;int&gt; ; как вызвать метод из структуры\класса some_type? как разыменовать этот указатель, я уже как не...

Как вызвать метод одного класса в другом? - C++
У меня есть два отдельных класса. Вопрос, как вызвать метод одного класса в другом? что-то слышал о экземпляре класса, указатели, но так...

Как вызвать метод из указателя на вектор пользовательского типа? - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;string&gt; using namespace std; struct Client { vector &lt;string&gt; login; vector...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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