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

来源:互联网 发布:为什么淘宝没有烟卖 编辑:程序博客网 时间:2024/06/03 06:29

欢迎加入我们的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