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

STL библиотека. Ф-ция for_each - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ одномерный массив http://www.cyberforum.ru/cpp-beginners/thread247590.html
задание: Нахождение экстремальных элементов в одномерном массиве. условие: Определить номер наибольшего элемента массива А и наибольшего значения среди модулей элементов массива А. не знаю как вторую половину условия на программировать... помогите чем можете...
C++ Функция Найти среднее арифметическое значений функции f(x) в точках a,b,(a+b)/2, используя обращение к функции. f(x) f= (e^x-e^(-x))/2+〖tg〗^2 x; a=3; b=5 http://www.cyberforum.ru/cpp-beginners/thread247575.html
C++ Найти сумму ряда
Помогите в С++ написать программу, которая вычисляет сумму; 1-1/2+3/3-5.... Количество чисел задает пользователь.
Найти среднее геометрическое элементов массива A C++
Массив-A Задание-Найти среднее геометрическое элементов массива A Условия и ограничения-A>0; N=10
C++ Работа с файлами http://www.cyberforum.ru/cpp-beginners/thread247544.html
В исходном текстовом файле есть float – числа в формате с фиксированной точкой (5 знаков после запятой). Создать новый файл из отрицательных чисел, следующих за двумя положительными числами в исходном файле. А теперь вопрос, каким образом выполнить такую постановку задачи? Насколько я понимаю, нужно как то положить отдельные числа в массив, а как выделить числа? Если не трудно, то можете ли Вы...
C++ структуры не дают покоя) необходимо написать программу на С позволяющую вводить элементы массива структур (не более 30 элементов) содержащие сведения о расписании поездов: день недели, станция назначания (название не более 20 символов, в день на одну станцию не более 5 поездов, количество станций не более 10) номер поезда и время отправления и позволяющую по задаваемой станции назначения посмотреть сведения о... подробнее

Показать сообщение отдельно
alex_x_x
бжни
 Аватар для alex_x_x
2441 / 1646 / 84
Регистрация: 14.05.2009
Сообщений: 7,163
24.02.2011, 02:58     STL библиотека. Ф-ция for_each
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
class A{
public:
  void print( int val ){ std::cout << val << std::endl; }
};
 
int main(){
  std::vector<int> v;
  v.push_back( 1 );
  v.push_back( 2 );
  v.push_back( 3 );
  v.push_back( 4 );
 
  A a;
 
  mem_fun1_t<void, A, int> fun_t( &A::print );
  fun_t( &a, v[0] );
 
  mem_fun1_t<void, A, int> fun = mem_fun( &A::print ); 
  fun( &a, v[0] );
 
  bind1st( fun, &a )( v[0] );
 
  std::for_each( v.begin(), v.end(), bind1st( mem_fun( &A::print ), &a ) );
}
Bash
1
2
3
4
5
6
7
1
1
1
1
2
3
4
этот пример демонстрирует как это работает
mem_fun1_t - функтор, который позволяет вызвать функцию член &A:: print у объекта по адресу &a, передав в качестве аргумента v[0]

mem_fun - функция, которая генерирует функтор по функции члену. на самом деле идея в том, что она может создавать разные функторы, в зависимости от количества аргументов функции члена

bind1st - функция, создающая функтор из функции с двумя аргументами (mem_fun функция), подставляя в первый аргумент значения &a. получаем функтор, у которого есть оператор operator(), принимающий v[0], результат будет равносилен fun( &a, v[0] )

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