STL_算法 for_each 和 transform 比较
来源:互联网 发布:邮箱验证正则表达式 js 编辑:程序博客网 时间:2024/05/20 04:47
C++ Primer 学习中。。。
简单记录下我的学习过程 (代码为主)
所有容器适用
/**----------------------------------------------------------------------------------
for_each 速度快 不灵活
transform 速度慢 非常灵活
----------------------------------------------------------------------------------**/
温故而知新:
>>for_each<<篇
>>transform<< 篇
/**------http://blog.csdn.net/u010579068------**/#include<iostream>#include<cstdio>#include<string>#include<vector>#include<list>#include<deque>#include<iterator>#include<algorithm>using namespace std;/*****************************************//所有容器适用/**----------------------------------------------------------------------------------for_each 速度快 不灵活transform 速度慢 非常灵活----------------------------------------------------------------------------------**//*************************************************************************************for_each(b,e,p)transform(b1,e1,b2,op)transform(b1,e1,b2,b3,op)*************************************************************************************/void square(int& elem)//引用传递所以速度快{ elem*=elem;}int square2(int elem)//传参做一次拷贝,返回做一次拷贝{ return elem*elem;}template <typename T>void Print(const T& V){ typename T::const_iterator iter=V.begin(); while(iter != V.end()) { cout<< *iter++ << " "; } cout<<endl;}int main(){ vector<int>a; vector<int>b; for(int i=1;i<=9;i++) { a.push_back(i); } b.insert(b.begin(),a.begin(),a.end()); cout<<"向量a:"<<endl; Print(a); for_each(a.begin(),a.end(),square);//参数的传递不需要返回值,引用传递即可 Print(a); cout<<endl; cout<<"向量b:"<<endl; Print(b); transform(b.begin(),b.end(),ostream_iterator<int>(cout," "),square2);//参数的传递不需要传引用,需要返回值 cout<<endl;return 0;}/*******Output: 向量a: 1 2 3 4 5 6 7 8 9 1 4 9 16 25 36 49 64 81 向量b: 1 2 3 4 5 6 7 8 9 1 4 9 16 25 36 49 64 81 *******/
0 0
- STL_算法 for_each 和 transform 比较
- for_each 和 transform比较
- for_each和transform用法比较
- STL常用遍历算法for_each和transform的比较
- STL算法 ------- transform() 与 for_each()比较
- 12 for_each()和transform()的比较
- for_each算法和transform算法区别
- STL算法(19)——for_each()和transform()的比较
- STL遍历算法 “for_each ”,“transform”
- STL中的两个算法for_each与transform
- STL之bind2st for_each 和 transform
- C++中transform和for_each的实现
- C++11 lambda表达式在for_each和transform算法下的使用
- STL学习之十四:常用算法 for_each 和 transform以及adjacent_find的示例代码
- STL通用算法: for_each,c++11标准范围for,transform.
- STL 之for_each,transform
- STL 之for_each,transform
- STL_算法_区间的比较(equal、mismatch、 lexicographical_compare)
- C++中关于拷贝构造函数
- iOS 使用ContactsUI保存新联系人到系统通讯录
- Javaweb环境部署总结
- 在web工程中使用Spring依赖注入
- 第五讲 二维费用的背包问题 HD FATE(二维完全背包)
- STL_算法 for_each 和 transform 比较
- C语言中的常用变量
- MYSQL 5.7.10命令行版本安装过程1。
- HDU 5606 tree
- 静态库的制作
- switch 循环中的判断 类型和if() 的判断类型
- 利用开源库libjpeg库解析jpeg格式图片
- Fragment ViewPager的例子代码
- OpenGLES2.0着色器语言glsl