Map Elements using for_each Algorithm in C++
Posted by Superadmin on August 10 2022 05:27:44

Map Elements using for_each Algorithm in C++

 

This C++ program prints elements of map using for_each algorithm. The for_each function takes three parameters – iterator to the beginning of the container, the iterator to the end of the container and a function or function object of class X. A function object is a programming construct allowing an object to be invoked or called as if it were an ordinary function. The class X has an operator() which allows the for_each to execute the code inside it.

 

Here is the source code of the C++ program prints elements of map using for_each algorithm. The C++ program is successfully compiled and run on a Linux system. The program output is also shown below.

  1. /*
  2.  * C++ Program to Print map using for_each algorithm
  3.  */ 
  4. #include <iostream>
  5. #include <algorithm>
  6. #include <string>
  7. #include <map>
  8.  
  9. class X {
  10.     public:
  11.         void operator() (std::pair <int, std::string> p){
  12.             std::cout << p.first << "\t" << p.second << std::endl;
  13.         }
  14. };
  15.  
  16. int main()  
  17. {
  18.     X x;
  19.     std::map <int, std::string> people;
  20.     people.insert(std::pair <int, std::string>(1, "Roger Federer"));
  21.     people.insert(std::pair <int, std::string>(2, "Rafael Nadal"));
  22.     people.insert(std::pair <int, std::string>(3, "Andy Murray"));
  23.     people.insert(std::pair <int, std::string>(4, "Novak Djokovic"));
  24.  
  25.     std::cout << "Id\tPlayer Name " << std::endl
  26.               << "--\t------------" << std::endl;
  27.     for_each(people.begin(), people.end(), x);
  28.     return 0;
  29. }

 

$ a.out
Id      Player Name
--      ------------
1       Roger Federer
2       Rafael Nadal
3       Andy Murray
4       Novak Djokovic