Algorithm For Each Function

C++ Algorithm for_each function applies the function func to all of the elements in the range from 'first' to 'last'.

Syntax

Example

template <class InputIterator, class Function>
Function for_each (InputIterator first, InputIterator last, Function func);

Parameter

first : It specifies the first element in the list.

last : It specifies the last element in the list.

func : It is an unary function which accepts the argument from the range.

Return value

The function returns 'func'.

Example 1

Example

#include <iostream>
#include <algorithm>
#include <vector>
void newfunction (int k)
{
	std::cout << " " <<k;
}
struct newclass
{
	void operator () (int k)
	{
		std::cout <<" "<<k;
	} 
}
newobject;
int main()
{
	std::vector<int> newvector;
	newvector.push_back(50);
	newvector.push_back(100);
	newvector.push_back(150);
	std::cout << "newvector contains:\n";
	for_each (newvector.begin () , newvector.end (), newfunction);
	std::cout<< "\n newvector contains:\n";
	for_each (newvector.begin (), newvector.end(), newfunction);
	std::cout<<"\n";
	return 0;
}

Output:

Output

newvector contains: 50 100 150
newvector contains: 50 100 150

Example 2

Example

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void printx1(int b)
{
    cout << b * 2 << " ";
}
struct Class1
{
    void operator() (int b)
    {
        cout << b * 3 << " ";
    }
} obj1;
int main()
{
    int ar[5] = { 6, 7, 8, 9, 10 };
      cout << "Using Arrays:" << endl;
    cout << "Multiple of 2 of elements are : ";
    for_each(ar, ar + 5, printx1);
     cout << endl;
    cout << "Multiple of 3 of elements are : ";
    for_each(ar, ar + 5, obj1);
    cout << endl;
    vector<int> ar1 = { 2,3,5,7,1 };
     cout << "Using Vectors:" << endl;
    cout << "Multiple of 2 of elements are : ";
    for_each(ar1.begin(), ar1.end(), printx1);
    cout << endl;
    cout << "Multiple of 3 of elements are : ";
    for_each(ar1.begin(), ar1.end(), obj1);
    cout << endl;
     }

Output:

Output

Using Arrays:                                                                                                                  
Multiple of 2 of elements are : 12 14 16 18 20                                                                                 
Multiple of 3 of elements are : 18 21 24 27 30                                                                                 
Using Vectors:                                                                                                                 
Multiple of 2 of elements are : 4 6 10 14 2                                                                                    
Multiple of 3 of elements are : 6 9 15 21 3

Complexity

The function moves in a linear way, starting from the first element going towards the last one. For each element of the list value of 'pred' is checked. The search goes on until a mismatch for the ?pred? value is encountered.

Data races

Either all the objects in the specified range or some of them are accessed by the function.

Exceptions

The function throws an exception if any of the argument throws one.

Input Required

This code uses input(). Please provide values below: