反向迭代器 模拟

反向迭代器 模拟

cpp 复制代码
namespace sjy
{
	template <typename Iterator, typename Ref, typename Ptr>
	struct Reverse_iterator  
	{
		typedef Reverse_iterator<Iterator, Ref, Ptr> self;
		Reverse_iterator(Iterator it)
			:_it(it)
		{}
		
		bool operator!=(const self& other) const
		{
			return _it != other._it;
		}
		
		bool operator==(const self& other) const
		{
			return _it == other._it;
		}
		
		self& operator++()
		{
			--_it;
			return *this;
		}
		
		self& operator--()
		{
			++_it;
			return *this;
		}
		
		Ref operator*()
		{
			Iterator tmp(_it);
			return *(--tmp);
		}
		
		Ptr operator->()
		{
			return &(operator*());
		}
		
		/*成员变量*/
		Iterator _it;
	};
}
相关推荐
程序员Linc6 分钟前
用OpenCV写个视频播放器可还行?(C++版)
c++·opencv·音视频·opencv 4.11
决斗小饼干28 分钟前
并发编程知识总结
c++
Andlin1 小时前
《CMakeList 知识系统学习系列(三):函数和宏》
c++
Forget the Dream1 小时前
设计模式之迭代器模式
java·c++·设计模式·迭代器模式
️Carrie️2 小时前
10.2 继承与多态
c++·多态·继承
Nicole Potter2 小时前
内存泄漏出现的时机和原因,如何避免?
c++·游戏·面试·c#
却道天凉_好个秋2 小时前
c++ 嵌入汇编的方式实现int型自增
开发语言·汇编·c++
tyler-泰勒3 小时前
c++:迭代器的失效
开发语言·c++
决斗小饼干3 小时前
震惊!C++程序真的从main开始吗?99%的程序员都答错了
c++
辰尘_星启3 小时前
【vscode】一键编译运行c/c++程序
c语言·c++·vscode·debug·cmake