list双向链表迭代器的实现

cpp 复制代码
// typedef __list_iterator<T, T&, T*> iterator;
	// typedef __list_iterator<T, const T&, const T*> const_iterator;
	template<class T, class Ref, class Ptr>
	struct __list_iterator
	{
		typedef list_node<T> Node;
		typedef __list_iterator<T, Ref, Ptr> self;
		Node* _node;

		__list_iterator(Node* node)
			:_node(node)
		{}

		Ref operator*()
		{
			return _node->_val;
		}

		Ptr operator->()
		{
			return &_node->_val;
		}

		self& operator++()
		{
			_node = _node->_next;
			return *this;
		}

		self operator++(int)
		{
			self tmp(*this);

			_node = _node->_next;

			return tmp;
		}

		self& operator--()
		{
			_node = _node->_prev;
			return *this;
		}

		self operator--(int)
		{
			self tmp(*this);

			_node = _node->_prev;

			return tmp;
		}

		bool operator!=(const self& it) const
		{
			return _node != it._node;
		}

		bool operator==(const self& it) const
		{
			return _node == it._node;
		}
	};
相关推荐
西幻凌云3 小时前
认识STL序列式容器——List
开发语言·c++·stl·list·序列式容器
yanghuashuiyue4 小时前
windows vue3开发环境搭建
windows
uestc_Venn4 小时前
Windows 11系统出现User Profile Service 服务登录失败。无法加载用户配置文件。 的解决办法
windows·电脑
lkbhua莱克瓦244 小时前
Java项目——斗地主小游戏(控制台版)
java·开发语言·windows·斗地主项目
hweiyu005 小时前
数据结构:循环链表
数据结构·链表
一起养小猫8 小时前
《Java数据结构与算法》第三篇(中)——从Char到泛型:链栈的抽象、递归的瓦解与栈模拟实现
java·开发语言·数据结构·算法·链表
zt1985q11 小时前
外部访问 Python 搭建的 HTTP 服务器
运维·服务器·网络·windows·网络协议·http
love530love18 小时前
解决 ComfyUI 启动显示 ‘sox‘ 命令未找到错误:从安装到配置的完整指南
人工智能·windows·python·aigc·comfyui·comfyui-manager
做怪小疯子19 小时前
LeetCode 热题 100——链表——相交链表
算法·leetcode·链表