标准模板12
#include<iterator>
#include<algorithm>
#include<functional>
#include<iostream>
using namespace std;
template<class T>
class IncrementIterator
:
public iterator<input_iterator_tag,T,ptrdiff_t,const T*,const T&>{
private:
T value;
public:
typedef IncrementIterator<T>Self;
IncrementIterator(const T& value=T()):value(value){}
bool operator==(const Self& rhs) const {return value==rhs.value;}
bool operator!=(const Self& rhs) const {return value!=rhs.value;}
Self& operator++() {value++;return *this;}
Self operator++(int){
Self tmp=*this;value++;
return tmp;
}
const T & operator*() const {return value;}
const T * operator->() const {return value;}
};
int main()
{
copy(IncrementIterator<int>(),IncrementIterator<int>(10),ostream_iterator<int>(cout," "));
cout<<endl;
int s[]={5,8,7,4,2,6,10,3};
transform(s,s+sizeof(s)/sizeof(int),IncrementIterator<int>(),ostream_iterator<int>(cout," "),plus<int>());
cout<<endl;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?