算法 for_each
来源:互联网 发布:bose蓝牙音响 知乎 编辑:程序博客网 时间:2024/04/30 12:53
#include <iostream>#include <vector>#include <algorithm>using namespace std;void print(int elem) // void 函数,{cout << elem << ' ';}template<class T> // 模板class AddValue{private:T theValue;public:AddValue(const T& v) :theValue(v){}void operator() (T& elem) const{elem += theValue;}};class MeanValue{private:long num;long sum;public:MeanValue() :num(0), sum(0){}void operator()(int elem){num++;sum += elem;}double value(){return static_cast<double>(sum) / static_cast<double>(num);}operator double() // 类型转换运算符重载,{return static_cast<double>(sum) / static_cast<double>(num);}};int main(){vector<int> ivec;for (int i = 0; i <= 9; ++i)ivec.push_back(i);for_each(ivec.begin(), ivec.end(), print);cout << endl; // 输出是0,1,2,3,4,5,6,7,8,9MeanValue mv = for_each(ivec.begin(), ivec.end(), MeanValue());cout << "平均值:" << mv.value() << endl;for_each(ivec.begin(), ivec.end(), AddValue<int>(10));for_each(ivec.begin(), ivec.end(), print);cout << endl; //输出是10,11,12,13,14,15,16,17,18,19,for_each(ivec.begin(), ivec.end(), AddValue<int>(*(ivec.begin())));for_each(ivec.begin(), ivec.end(), print);cout << endl; // 输出是 20,21,22,23,24,25,26,27,28,29, double result = for_each(ivec.begin(), ivec.end(), MeanValue());cout << "平均值:" << result << endl;return 0;}
0 0
- for_each算法
- 算法 for_each
- for_each()算法
- for_each算法
- 泛型算法 for_each()
- 妙用for_each算法函数
- 妙用for_each算法函数
- 妙用for_each算法函数
- 妙用for_each算法函数
- STL运算算法-for_each()
- C++ STL 算法:for_each
- STL算法------for_each
- for_each算法函数
- for_each()算法的使用
- STL算法之for_each
- for_each算法函数
- STL遍历算法 “for_each ”,“transform”
- C++的STL算法for_each
- 正则表达式
- 【HDU-1087】Super Jumping! Jumping! Jumping!
- bzoj2337 XOR路径 高斯消元
- 关于指针作函数参数
- TTL、RS232、CMOS电平
- 算法 for_each
- HDU 1269 迷宫城堡 强联通分量模板存放处
- 关于System类的使用方法【小程序】
- [Offer收割]编程练习赛1 hihocoder 1270 建造基地 (完全背包)
- 进程间通信——管道
- 新浪微博时间转换工具类
- 会场安排问题(贪心算法)
- Android知识点整理
- 剑指offer-顺时针打印矩阵