CPP/STL/ForEach
From ProgrammingExamples
ForEach.cpp
#include <iostream> #include <algorithm> #include <vector> struct printFunctor { void operator() (int x) { std::cout << x; } }; int main() { std::vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); printFunctor myPrint; std::for_each(v.begin(), v.end(), myPrint); return 0; } /* #include <iostream> #include <algorithm> #include <vector> using namespace std; void showSquaredValue(const int n){ cout << n << "*" << n << " = " << n*n << endl; }; class RepeatSequence{ int begin, end; int offset; public: RepeatSequence(int first, int last): begin(first),end(last - 1), offset(begin - 1){} RepeatSequence(): begin(),end(), offset(){} int operator()(){ return offset = offset >= end ? begin: offset + 1; } }; int main(){ vector<int> num; const int MAX = 10; std::generate_n(std::back_insert_iterator<vector<int>>( num ), MAX, RepeatSequence(0,5) ); //for each values in the vector num, show its squared value std::for_each(num.begin(),num.end(),showSquaredValue); return 0; } */
CMakeLists.txt
cmake_minimum_required(VERSION 2.6) PROJECT(ForEach) ADD_EXECUTABLE(ForEach ForEach.cpp )