cb39a_c++_STL_算法_for_each_transform_比较

cb39a_c++_STL_算法_for_each_transform_比较
for_each() 速度快,不灵活
transform() 速度慢, 非常灵活

STL算法-修改性算法
for_each()
copy()
copy_backward()
transform()
merge()
swap_ranges()
fill()
fill_n()

generate()
generate_n()
replace()
replace_if()
replace_copy()
replace_copy_if()

void square(int &elem)//for_each参数必须是按引用传递,速度快
{
    elem = elem*elem;

}
int square2(int elem)//transform不能传引用,传copy,速度慢
{
    return elem * elem;
}

int main()
transform(b.begin(), b.end(), b.begin(), square2);

/*cb39a_c++_STL_算法_for_each_transform_比较
for_each() 速度快,不灵活
transform() 速度慢, 非常灵活

STL算法-修改性算法
for_each()
copy()
copy_backward()
transform()
merge()
swap_ranges()
fill()
fill_n()

generate()
generate_n()
replace()
replace_if()
replace_copy()
replace_copy_if()

void square(int &elem)//for_each参数必须是按引用传递,速度快
{
	elem = elem*elem;

}
int square2(int elem)//transform不能传引用,传copy,速度慢
{
	return elem * elem;
}

int main()
transform(b.begin(), b.end(), b.begin(), square2);
*/

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

using namespace std;
void square(int &elem)//for_each参数必须是按引用传递,速度快
{
	elem = elem*elem;
	
}
int square2(int elem)//transform不能传引用,传copy,速度慢
{
	return elem * elem;
}

int main()
{
	vector<int> a;
	vector<int> b;
	for (int i = 1; i <= 9; ++i)
	{
		a.push_back(i);
		b.push_back(i);
	}
	cout << "向量a:" << endl;
	for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
		cout << *iter << ' ';
	cout << endl;
	cout << "使用for_each" << endl;
	for_each(a.begin(), a.end(), square);//调用square函数
	for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter)
		cout << *iter << ' ';
	cout << endl;

	cout << "向量b:" << endl;
	for (vector<int>::iterator iter = b.begin(); iter != b.end(); ++iter)
		cout << *iter << ' ';
	cout << endl;

	cout << "使用transform算法,不能传引用" << endl;
	transform(b.begin(), b.end(), b.begin(), square2);

	for (vector<int>::iterator iter = b.begin(); iter != b.end(); ++iter)
		cout << *iter << ' ';
	cout << endl;

		
	return 0;
}

发布了469 篇原创文章 · 获赞 211 · 访问量 95万+

猜你喜欢

转载自blog.csdn.net/txwtech/article/details/104462598