Difference between revisions of "CPP/STL/ForEach"

From ProgrammingExamples
< CPP
Jump to: navigation, search
 
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 )