Algorithm For Each Function - C++ Programming Tutorial
C++ Course / STL Algorithm / Algorithm For Each Function

Algorithm For Each Function

BLUF: Mastering Algorithm For Each Function is a critical step in becoming a proficient C++ developer. This lesson provides a deep dive into the syntax, performance considerations, and real-world applications of this concept.
Key Performance Insight: Algorithm For Each Function

C++ is renowned for its efficiency. Learn how Algorithm For Each Function enables low-level control and high-performance computing in the tutorial below.

The C++ algorithm for_each function executes the function func on every element within the range starting from 'first' up to 'last'.

Syntax

Example

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

Parameter

It designates the initial element within the list.

last : It specifies the last element in the list.

func : It is a unary function that takes an argument within a specified 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 operation progresses sequentially, initiating from the initial item and advancing towards the final one. Each item in the list is assessed for the 'pred' value. The process continues until a discrepancy in the 'pred' value is identified.

Data races

The function accesses either all objects within the designated range or a subset of them.

Exceptions

The function will raise an exception if any of the arguments also raises an exception.

Input Required

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

Logic Practice
Install Logic Practice
Add to home screen for a faster app-like experience