阅读背景:

C++ for_each() 和 transform() 的比较

来源:互联网 
for_each()和transform()算法比较
1)STL 算法 – 修改性算法
for_each() 
copy()
copy_backward()
transform()
merge()
swap_ranges()
fill()
fill_n()
generate()
generate_n()
replace
replace_if()
replace_copy()
replace_copy_if()
2)
for_each()		速度快		不灵活
transform()	速度慢		非常灵活

//一般情况下:for_each所使用的函数对象,参数是引用,没有返回值 
void mysquare(int &num)
{
	num = num * num;
}

//transform所使用的函数对象,参数一般不使用引用,而是还有返回值
int mysquare2(int num) //结果的传出,必须是通过返回值
{
	return num = num * num;
}

void main_foreach_pk_tranform()
{
	vector<int>  v1;
	v1.push_back(1); 
	v1.push_back(3); 
	v1.push_back(5);

	vector<int>v2 = v1;
	for_each(v1.begin(), v1.end(), mysquare);
	printAA(v1);
	cout << endl;

	transform(v2.begin(), v2.end(), v2.begin(), mysquare2);
	printAA(v2); 
	cout << endl;
}for_each()和transform()算法比较
1)STL 算法 – 修改性算法
fo



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: