The generate() Algorithm

The generate() Algorithm

You can use the generate() algorithm to fill up a sequence container with values that you generate by repeatedly calling a function. This algorithm takes three arguments. The first two arguments are forward iterators marking the range and the third one is the function pointer?or function object that returns values to be filled in the sequencer container.

Suppose you want fill a vector with numbers sequentially, but want to fill 0 for those number which are not divisible by 3:

	class gen	{		public:		int operator () ()		{			static int i = 0;			++i;			return i%3 ? 0 : i;		}	};	#include  //for generate()	#include  //for vector	vector vecInt(10);	generate(vecInt.begin(), vecInt.end(), gen() ); // 0 0 3 0 0 6 0 0 9 0

The generate_n() algorithm is similar in that it invokes the function (the third argument) as many times as is specified in its second argument to fill up the sequence container.

	#include  //for list	list lstInt;	generate_n(back_inserter(lstInt), 5, gen());

The above statement invokes gen().

Share the Post:
Heading photo, Metadata.

What is Metadata?

What is metadata? Well, It’s an odd concept to wrap your head around. Metadata is essentially the secondary layer of data that tracks details about the “regular” data. The regular

XDR solutions

The Benefits of Using XDR Solutions

Cybercriminals constantly adapt their strategies, developing newer, more powerful, and intelligent ways to attack your network. Since security professionals must innovate as well, more conventional endpoint detection solutions have evolved

AI is revolutionizing fraud detection

How AI is Revolutionizing Fraud Detection

Artificial intelligence – commonly known as AI – means a form of technology with multiple uses. As a result, it has become extremely valuable to a number of businesses across

AI innovation

Companies Leading AI Innovation in 2023

Artificial intelligence (AI) has been transforming industries and revolutionizing business operations. AI’s potential to enhance efficiency and productivity has become crucial to many businesses. As we move into 2023, several