C++ transform for_each
#include<iostream>
#include<vector>
#include <list>
#include <algorithm>
#include <functional>
using namespace std;
//不需拷贝,速度快
void square(int &elementParam)
{
elementParam = elementParam*elementParam;
}
//速度慢,传参数一次拷贝,返回时一次拷贝
int square2(int elementParam)
{
return elementParam*elementParam;
}
int main()
{
vector<int> vec2;
vector<int> vec3;
for (int k=0;k<10;k++)
{
vec2.push_back(k);
vec3.push_back(k);
}
for_each(vec2.begin(),vec2.end(),square);
for (auto vec_iter2 = vec2.begin(); vec_iter2 != vec2.end(); ++vec_iter2)
{
cout << *vec_iter2 << " ";
}
cout << endl;
cout << "------------------------------------------------------" << endl;
for (auto vec_iter3 = vec3.begin(); vec_iter3 != vec3.end(); ++vec_iter3)
{
cout << *vec_iter3 << " ";
}
cout << endl;
cout << "------------------------------------------------------" << endl;
transform(vec3.begin(),vec3.end(),vec3.begin(),square2);
for (auto vec_iter3 = vec3.begin(); vec_iter3 != vec3.end(); ++vec_iter3)
{
cout << *vec_iter3 << " ";
}
cout << endl;
cout << "------------------------------------------------------" << endl;
//transform 比 for_each灵活
//for_each比transform速度快
system("pause");
return 0;
}
=====================================================
0 1 4 9 16 25 36 49 64 81
------------------------------------------------------
0 1 2 3 4 5 6 7 8 9
------------------------------------------------------
0 1 4 9 16 25 36 49 64 81
------------------------------------------------------
请按任意键继续. . .
C++ transform for_each的更多相关文章
- lambda表达式和for_each,find_if
1 lambda表达式可以允许我传递任意可调用对象,必须要有捕获列表和函数体,标准形式是[捕获列表] (参数列表)->return tpye{函数体} 谓词:一元谓词指的是只能接受一个传入参数, ...
- C++STL 算法
算法部分主要由头文件<algorithm>,<numeric>和<functional>组成. <algorithm>是所有STL头文件中最大的一个,其 ...
- [C++ STL] 常用算法总结
1 概述 STL算法部分主要由头文件<algorithm>,<numeric>,<functional>组成.要使用 STL中的算法函数必须包含头文件<alg ...
- 传智播客C++视频学习笔记(5)
#include <iostream> using namespace std; void swapInt(int& a, int& b) { int temp = a; ...
- C++ 进阶 模板和STL
C++提高编程 本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层的使用 1 模板 1.1 模板的概念 模板就是建立通用的模具,大大提高复用性 模板的特点: 模板不可以直接使用,它只 ...
- STL常用遍历算法for_each和transform的比较
for_each()和transform()算法比较 1)STL 算法 – 修改性算法 for_each() copy() copy_backward() transform() merge ...
- stl中的transform()注意其与for_each的不同点(有无返回值)
#include<iostream> using namespace std; #include"vector" #include"algorithm&quo ...
- STL经常使用遍历算法for_each和transform的比較
for_each()和transform()算法比較 1)STL 算法 – 改动性算法 for_each() copy() copy_backward() transform() merge ...
- 记录 C++ STL 中 一些好用的函数--持续更新 (for_each,transform,count_if,find_if)
在日常的编程中,有这么几种操作还是比较常见的: 把一组数据都赋值成一个数,在一组数据中查找一个数,统计一组数据中符合条件的数等等. 一般的写法可以用循环,没有什么是循环不能搞定的.假如在这里怎么用介绍 ...
随机推荐
- U盘不能复制4G以上的单个文件如何处理?
制作好雨后清风U盘启动盘后,有朋友在将雨后清风系统镜像文件拷贝传输至U盘时,会发现U盘提示文件过大,无法进行传输,但是U盘的剩余存储空间明显还足够,这是怎么回事呢? 其实这是U盘文件系统格式的原因,如 ...
- FPGA学习笔记——点亮LED
软件平台:win7(64bit) + Quartus II 9.1 (64-Bit) 硬件平台:东理电子Easy-FPGA Cyclone II EP2C5T114C8N 这个开发板买了很长时间了,买 ...
- Docker常用命令行
原文出处:https://blog.csdn.net/qq_29303759/article/details/87639016 启动docker 启动docker systemctl start do ...
- 7月新的开始 - Axure学习01 - 元件库、元件交互样式设置
解释: Axure 属于原型制作里的霸道总裁 1.原型:原型模拟真实产品的功能与设计.用于在初期阶段测试产品的可行性与效果.来节省开发成本与周期. 2.线框图:在初期实现对产品的了解.实现产品的基本结 ...
- jaxb生成pojo类返回类型为布尔值的问题
返回值为Boolean的话回在对象转json的时候丢失掉这个属性,因为json认的是小写. 这个算jaxb的一个bug:https://java.net/jira/browse/JAXB-510 解决 ...
- 2019牛客多校第四场B xor——线段树&&线性基的交
题意 给你 $n$ 个集合,每个集合中包含一些整数.我们说一个集合表示一个整数当且仅当存在一个子集其异或和等于这个整数.现在你需要回答 $m$ 次询问 ($l, r, x$),是否 $l$ 到 $r$ ...
- C# 操作文件夹、文件
Form namespace FileProperties { public partial class Form1 : Form { private string currentFolderPath ...
- 04_mysql安装
# 安装 [root@localhost ~]# yum install mysql mysql-server -y 报错 [root@ossec-server ~]# yum install mys ...
- [Algorithm] Tree Width with Level Width
// --- Directions // Given the root node of a tree, return // an array where each element is the wid ...
- [React Native] Up & Running with React Native & TypeScript
Create a new application with Typescript: react-native init RNTypeScript --template typescript Then: ...