//代码1
代码#include<algorithm>
#include<vector>
#include<iostream>
classPrintInt
{
public:
voidoperator()(intv)
{
std::cout<<v<<"";
}
};
intmain()
{
std::vector<int>vec;
for(inti=0; i<10;++i)
{
vec.push_back(i);
}
std::for_each(vec.begin(), vec.end(), PrintInt());
std::cin.get()
return0;
}
代码2
代码#include<algorithm>
#include<vector>
#include<iostream>
classPrintInt{
intbase_;
public:
explicitPrintInt(intb) : base_(b){}
voidoperator()(intv)
{
std::cout<<v+base_<<"";
}
};
intmain()
{
std::vector<int>vec;
for(inti=0; i<10;++i)
{
vec.push_back(i);
}
std::for_each(vec.begin(), vec.end(), PrintInt(10));
std::cin.get();
return0;
}
代码3
代码#include<vector>
#include<iostream>
classPrintInt{
intbase_;
public:
explicitPrintInt(intb) : base_(b){}
voidoperator()(intv)
{
std::cout<<v+base_<<"";
}
};
template<typename It, typename F>
voidmy_for_each(It beg, It end, F f)
{
for(; beg!=end;++beg)
{
f(*beg);
}
}
intmain()
{
std::vector<int>vec;
for(inti=0; i<10;++i)
{
vec.push_back(i);
}
my_for_each(vec.begin(), vec.end(), PrintInt(10));
std::cin.get();
return0;
}
我认识的高手说:
C++STL泛型算法就是基于迭代器和函数对象技术的,迭代器控制作用范围,函数对象作为谓词对元素进行操作
经典经典..........一切都是基本的东西......
原文链接: https://www.cnblogs.com/duzouzhe/archive/2010/03/17/1688122.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/8912
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!