Using for_each to Display the Contents of a Collection : for_each « STL Algorithms Non modifying sequence operations « C++ Tutorial

#include <algorithm>
#include <iostream>
#include <vector>
#include <string>

using namespace std;

template <typename elementType>
class DisplayCounter{
    int m_nCount;

    DisplayCounter (){
        m_nCount = 0;
    void operator () (const elementType& element) {
        ++ m_nCount;
        cout << element << ' ';
    int GetCount(){
        return m_nCount;

int main (){
    vector <int> v;

    for (int nCount = 0; nCount < 10; ++ nCount)
        v.push_back (nCount);

    DisplayCounter<int> mIntResult = for_each ( v.begin (), v.end(), DisplayCounter<int> () );
    cout << mIntResult.GetCount () << endl;

    string str ("this is a test");
    cout << str << endl << endl;

    DisplayCounter<char> mCharResult = for_each (str.begin(), str.end(),DisplayCounter<char> () );

    cout << mCharResult.GetCount () << endl;

    return 0;

25.11.1.Use for_each with predicate
25.11.2.Use for_each function to add value for each element
25.11.3.Use for_each function to add first element to each element in the list
25.11.4.Use for_each function to print all elements in a vector
25.11.5.Call custom function in for_each
25.11.6.Use custom function and for_each to calculate mean value
25.11.7.Use for_each() algorithm to show elements in a vector and do the summation
25.11.8.Using for_each to Display the Contents of a Collection
25.11.9.The square of every integer in a vector