C++ STL中 std::transfrom()..使用方法.【2013.10.25】

欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 


C++ STL中 拿一个容器转换成另一个容器的方法 std::transfrom()...超级简单。嘿嘿......看代码

在侯捷的 C++ template中,是一个叫 非类型函数模版参数的东西...STL 很棒的东西!

template<class T,int Value>
T TestAdd( T & t)
{
	return t + Value;
}

int main()
{
	vector<int > avs;
	vector<int >bvs(3,0);
	avs.push_back(1);
	avs.push_back(2);
	avs.push_back(3);
	std::transform(avs.begin(),avs.end(),bvs.begin(),TestAdd<int , 10>);
	//bvs的内容就编程 11,12,13 了。。。。
	//如果想两个容器做其他转换,只要修改TestAdd规则,在调用transfrom就可以了。

	return 0;
}

不过,这种方法是有限制的,他只能用于 int 类型 template <class T,double Value> 这样是不行的.. transfrom 的时候编译过不了的会提示【error C2993: “double”: 非类型模板参数“Value”的类型非法】




欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 

你可能感兴趣的:(C++,STL,侯捷)