for_each用法
函数原型
UnaryProc for_each (InputIterator beg, InputIterator end, UnaryProc op)
* 调用 op(elem), [begin, end)区间的每一个元素
* 返回遍历执行后的op副本
* op可能修改元素, 与transform算法相似
* op的返回值将被忽略
* 算法复杂度: 线性, 每个元素都调用一次op
一、基本用法
1. 用lambda作为op
int main()
{vector<int> coll;INSERT_ELEMENTS(coll,1,9); // 插入1到9// 打印每个元素for_each (coll.cbegin(), coll.cend(),[](int elem){cout << elem << ’ ’;});cout << endl;
}
2. 普通函数作为op
void print(int elem) { cout << elem << ' '; }
for_each(coll.begin(), coll.end(), print);
3. 函数对象作为op
template <typename T>
class AddValue
{
private:T theValue;
public:AddValue(const T& v) : theValue(v) {}void operator() (T& elem) const { elem += theValue; // 元素加上一个值}
}
for_each (coll.begin(), coll.end(), AddValue<int>(10));
二、其他说明
1. C++11基于范围的for循环遍历每个元素更方便
for (auto elem : coll)
{cout << elem << ' ';
}
2. 可以利用for_each的返回值
class MeanValue
{
private:long num, sum;
public:MeanValue() : num(0), sum(0) {}void operator() (int elem) {num++;sum += elem;}operator double() {return static_cast<double>(sum) / static_cast<double>(num);}
};double mv = for_each(coll.begin(), coll.end(), MeanValue());
cout << "mean value: " << mv << endl;
for_each用法相关推荐
- boost::hana::for_each用法的测试程序
boost::hana::for_each用法的测试程序 实现功能 C++实现代码 实现功能 boost::hana::for_each用法的测试程序 C++实现代码 #include <boo ...
- boost::fusion::for_each用法的测试程序
boost::fusion::for_each用法的测试程序 实现功能 C++实现代码 实现功能 boost::fusion::for_each用法的测试程序 C++实现代码 #include < ...
- c++中for_each用法简单概述
c++中for_each用法 核心部分: vector容器中for_each遍历算法: for_each(v.begin(),v.end(),MyPrint);void MyPrint(int val ...
- c++ for_each 用法
主要参考:for_each的用法,转载自蕭鴻森的blog (找不到原文的链接) 在接触C++特性Lambda时,接触到for_each,没想到这内容还挺多的,所以,先了解for_each,再学习La ...
- for_each用法示例
文章目录 前言 示例demo 前言 由于偶然间发现for_each能使得避免使用for循环,大大简化了代码.这里简单记录下for_each的一个简单示例demo,方便温习. 示例demo #inclu ...
- C++11 for循环新用法、for_each 用法
转载:https://blog.csdn.net/weixin_38500110/article/details/78766592 c++11 for循环多了新的语法 #include<iost ...
- std::for_each 用法
描述: 遍历容器元素并执行指定函数. 定义: template< class InputIt, class UnaryFunction > UnaryFunction for ...
- C++for_each| bind1st | ptr_fun | std::function的用法
c++ for_each 用法_小键233-CSDN博客 传入参数 要传入参数给global function ,需要使用 ptr_fun() 这个 function adapter 将global ...
- c++ for_each 的各种用法
引入 先看一段不用for_each 的代码: #include<iostream> #include<vector> #include<algorithm> usi ...
最新文章
- python使用imbalanced-learn的SVMSMOTE方法进行上采样处理数据不平衡问题
- Java技术:为什么不推荐使用BeanUtils属性转换工具
- LSGO软件技术团队2015~2016学年第十六周(1214~1220)总结
- 随想录(uclibc的学习)
- epoll哪些触发模式_epoll的内部实现 百万级别句柄监听 lt和et模式非常好的解释...
- 2021年中国云项目组合管理(CPPM)市场趋势报告、技术动态创新及2027年市场预测
- 倒计时 1 天 | 年前不学习,年后无加薪!区块链开发者们不要纠结了!(内含赠票福利)...
- solidity教程:solidity语言入门
- PMP估算方法对比:参数估算、类比估算、自下而上估算、三点估算和粗略量级估算
- 华为鸿蒙os logo,华为鸿蒙OS Logo曝光:Powered by HarmonyOS
- oracle中同义词作用,Oracle同义词创建及其作用
- 真正牛逼的人,都是极简主义者!!
- ppt流程图字体太小_【PPT】几种处理字体的小方法,让PPT中的字体更好看
- PowerShell的基本使用方法
- CGAL的安装与在VS中的配置
- DDS的理解及IP核的使用
- 台湾各个大学硕博论文链接,很全,有的可以全文下载。
- 黑马程序员C++笔记
- 航空爱好者自问自答(2)
- 利用牛顿迭代法求平方根 .