c++ algorithm generate, mutable

 

generate : 1,2번 인자 범위를 3번 인자의 식으로 값을 생성함.

mutable : const 변수 수정 가능


example:

#include <algorithm>
#include <iostream>
#include <vector>

int main()
{
	std::vector<int> v(5);
	
	/*
	// can access 'n' in lambda function.
	int n = 0;
	std::generate(v.begin(), v.end(), [&]() { return n++; });
	*/

	/*
	// can access 'n' in lambda function. because of mutable.
	int n = 0;
	std::generate(v.begin(), v.end(), [=]() mutable { return n++; });
	*/

	std::generate(v.begin(), v.end(), [n = 0]() mutable { return n++; });


	std::cout << "v: ";
	for (auto iv : v) {
		std::cout << iv << " ";
	}
	std::cout << "\n";
}






댓글