Difference between revisions of "CPP/STL/ForEach"
From ProgrammingExamples
< CPP
Daviddoria (Talk | contribs) |
Daviddoria (Talk | contribs) |
||
Line 26: | Line 26: | ||
return 0; | 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; | ||
+ | } | ||
+ | */ | ||
</source> | </source> | ||
Latest revision as of 13:16, 20 September 2011
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 )