C++ transfrom的使用

1 定义:

 假设你已知,  自补


2 用法

下面代码简要说明了2种使用方法: 

a. 将容器的元素当做入参

b. 用容器的元素调用其成员函数


3 代码实现

#include 
#include 
#include 

#include   //!< for transfrom function
#include   //!< for mem_fun function

using namespace std;

//! 自定义函数, 测试用之
string* Add1(string *str)
{
	*str += '1';
	return str;
}

int main()
{
	vector vctStr;
	vctStr.push_back(new string("hello"));
	vctStr.push_back(new string("boy"));
	vctStr.push_back(new string("girl"));

	for (auto i : vctStr)
	{
		cout << *i << " ";
	}
	cout << endl;

	//! 用法1: 将元素作为参数传入函数
	vector vctStrDst(vctStr.size());
	transform(vctStr.begin(), vctStr.end(), vctStrDst.begin(), Add1);

	for (auto i : vctStrDst)
	{
		cout << *i << " ";
	}
	cout << endl;

	//! 用法2: 调用元素的成员函数
	vector vctIntDst(vctStr.size());
	transform(vctStr.begin(), vctStr.end(),
		vctIntDst.begin(), mem_fun(&string::size));

	for (auto i : vctIntDst)
	{
		cout << i << " ";
	}
	cout << endl;

	//! 收尾
	for (auto i : vctStr)
	{
		delete i;
	}
	vctStr.clear();

	cin.get();
	return 0;
}


4 运行结果

hello boy girl 
hello1 boy1 girl1 
6 4 5 



你可能感兴趣的:(C++,算法)