The for_each_n() function was added in the C++17 technical specification. Its idea has been borrowed from the use of map in Python or Haskel. This function can be called with or without an execution policy. The execution policy lets you decide whether to utilize the new parallelization capabilities optimized to run on multiple cores or simply run it sequentially as with the previous standards. Even ignore the execution policy as all the functions have overloaded counterparts that run sequentially.
Simply put, for_each_n() helps apply a common function to all the elements of an array (or any other linear data-type). It essentially batches updates a range of elements starting from a given iterator and for a fixed number of elements from that iterator.
InputIt for_each_n( ExecutionPolicy&& policy, InputIt first, Size n, UnaryFunction f ) policy: [Optional] The execution policy to use. The function is overloaded without its use. first: The iterator to the first element you want to apply the operation on. n: the number of elements to apply the function to. f: the function object that is applied to the elements.
(Note: The given code requires C++17 or later and may not run in all C++17 environments.)
1 2 3 4 5 6 2 3 3 4 5 6 2 3 5 6 5 6
The true power and flexibility of for_each_n() can only be leveraged by the use of functors as its third argument.
(Note: The given code requires c++17 or later and may not run in all c++17 environments.)
1 2 3 4 5 6 2 3 5 6 5 6
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- lvalues references and rvalues references in C++ with Examples
- Difference between cout and std::cout in C++
- C++ program to check whether a String is a Pangram or not
- Difference between pair in Multiset and Multimap in C++ STL
- How to use unordered_map efficiently in C++
- Header files in C/C++ with Examples
- C++ Program for the Fractional Knapsack Problem
- Trigraphs in C++ with Examples
- Difference Between DART and C++
- How to fix auto keyword error in Dev-C++
- Lexicographical smallest number after at most K consecutive swaps
- Important functions of STL Components in C++
- Array of Structures vs. Array within a Structure in C/C++
- Difference between cout and puts() in C++ with Examples
- Difference between forward list and list in C++
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.