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

Как использовать инструкцию for_each ? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Операции ввода и вывода С++ http://www.cyberforum.ru/cpp-beginners/thread799213.html
Необходимо продемонстрировать операции << и >> для ввода и вывода типов char, int, float, double для какого-либо значения
C++ Определить силу попарного гравитационного взаимодействия 3-х планет в заданное время Звезда Epsilon 2 Gamma имеет три планеты: E2G_1, E2G_2 и E2G_3. Звездолету GExplorer предстоит встреча с другим кораблем в данной звездной системе. Астронавигаторы рассчитывают на появление звездолета в пространстве системы Epsilon 2 Gamma в момент противостояния трех планет (т.е. когда они выстроятся в одну линию по отношению к звезде). Командир корабля поручает вам разработать программный... http://www.cyberforum.ru/cpp-beginners/thread799210.html
Задача Корни C++
"Исходные данные Входной поток содержит набор целых чисел Ai (0 ≤ Ai ≤ 1018), отделённых друг от друга произвольным количеством пробелов и переводов строк. Размер входного потока не превышает 256 КБ. Результат Для каждого числа Ai, начиная с последнего и заканчивая первым, в отдельной строке вывести его квадратный корень не менее чем с четырьмя знаками после десятичной точки." - Условие...
C++ Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника. Класс должен содержать основной конструктор и конструктор копирования. Определить в этом классе функции-члены, которые обеспечивают ввод/вывод элементов класса, доступ к закрытым членам класса и логическую функцию, определяющую возможность построения треугольника....
C++ Сформировать и вывести массив размера N, содержащий N первых членов данной прогрессии http://www.cyberforum.ru/cpp-beginners/thread799184.html
Помогите пожалуйста ошибку найти , ничего не понимаю как исправить Заранее спасибо Дано целое число N (>1), а также первый член А и знаменатель D геометрической прогрессии. Сформировать и вывести массив размера N, содержащий N первых членов данной прогрессии: А, А*D, A*D^2, A*D^3, … . #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <math.h> int main()
C++ Массивы. Найти повторяющиеся элементы и количество повторений каждого из таких элементов Добрый день! Нужна помощь в написании программы: В произвольном массиве из n целых чисел (n<100) найти повторяющиеся элементы и количество повторений каждого из таких элементов. подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1603 / 995 / 118
Регистрация: 27.09.2009
Сообщений: 1,918
Завершенные тесты: 1
03.03.2013, 12:21     Как использовать инструкцию for_each ?
Суть алгоритма for_each - выполнение какого-то действия с каждым элементом диапазона по отдельности. Например, можно их напечатать:
C++
1
2
3
4
5
6
7
8
9
void PrintInt(int value)
{
    std::cout << value << std::endl;
}
 
void PrintIntVector(const std::vector<int>& v)
{
    std::for_each(v.begin(), v.end(), PrintInt);
}
Функция принимает очередной элемент массива и делает с ним что-нибудь. Поскольку в векторе хранятся int, то и получает функция int (или const int&, или даже int&, если надо элементы изменять), а хранились бы double - их бы и принимала. Кроме того, отметим, что счётчики итераций выполняются не на int, а на беззнаковом size_t.

В новом стандарте можно указывать лямбда-функции непосредственно при вызове:
C++
1
2
3
4
5
6
7
8
void PrintIntVector(const std::vector<int>& v)
{
    std::for_each(
        v.begin(), 
        v.end(), 
        [] (int value) {std::cout << value << std::endl;}
    );
}
 
Текущее время: 12:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru