/*
输出迭代器元素的种种方法
*/
#include <iostream>
#include <list>
#include <algorithm>
#include <iterator>
#include "print_elements.h"
using namespace std;
void print( int a )
{
cout << a << ' ';
}
class Print{
public:
inline void operator()(int a){ cout << a << ' '; }
};
int main()
{
list<int> coll;
for (int i=1; i<=6; ++i)
{
coll.push_back(i);
coll.push_front(i);
}
//1) 自定义的通用函数
print_elements( coll, "" );
cout << endl;
//2) for_each + 函数
for_each( coll.begin(), coll.end(), print );
cout << endl;
//3) for_each + 函数对象
Print print2;
for_each( coll.begin(), coll.end(), print2 );
cout << endl;
//4) streamIterator
copy( coll.begin(), coll.end(), ostream_iterator<int>(cout, " ") );
cout << endl;
cin.get();
}