generate_n() Function in C++

This C++ program demonstrates the generate_n() algorithm which saves the values generated by a function into a container. The program utilizes the generate_n() algorithm which is slightly different from generate() algorithm where it takes three parameters – pointer to the location where generated values will be saved, the number of values to be generated and the generating function. The generated values are then copied to the std::ostream.

Here is the source code of the C++ program which demonstrates the generate_n() 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 Demonstrate the generate_n() Algorithm
  3.  */
  4. #include <iostream>
  5. #include <algorithm>
  6. #include <iterator>
  7. using namespace std;
  8.  
  9. static int i = 1; 
  10. int ret() {
  11. 	return i++;
  12. }
  13.  
  14. int main() {
  15.     const std::size_t N = 10;
  16.     int arr[N];
  17.  
  18.     std::generate_n(arr, N, ret);
  19.     std::cout << "arr: ";
  20.     std::copy(arr, arr+N, std::ostream_iterator<int>(std::cout, " "));
  21.     std::cout << "\n";
  22. }

$ gcc test.cpp
$ a.out
Vector v : 1 2 3 4 5 6 7 8 9 10

Sanfoundry Global Education & Learning Series – 1000 C++ Programs.

advertisement
advertisement
If you wish to look at all C++ Programming examples, go to C++ Programs.

If you find any mistake above, kindly email to [email protected]

advertisement
advertisement
Subscribe to our Newsletters (Subject-wise). Participate in the Sanfoundry Certification contest to get free Certificate of Merit. Join our social networks below and stay updated with latest contests, videos, internships and jobs!

Youtube | Telegram | LinkedIn | Instagram | Facebook | Twitter | Pinterest
Manish Bhojasia - Founder & CTO at Sanfoundry
Manish Bhojasia, a technology veteran with 20+ years @ Cisco & Wipro, is Founder and CTO at Sanfoundry. He lives in Bangalore, and focuses on development of Linux Kernel, SAN Technologies, Advanced C, Data Structures & Alogrithms. Stay connected with him at LinkedIn.

Subscribe to his free Masterclasses at Youtube & discussions at Telegram SanfoundryClasses.