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 小时前
【错误记录】flutter pub get 执行报错 ( 打开 Windows 开发者模式 )
windows·flutter
8Qi83 小时前
LeetCode 148. 排序链表 —— 解法二:自底向上归并(迭代,O(1) 空间)
数据结构·算法·leetcode·链表·归并·迭代
一个人旅程~3 小时前
如何让bootcamp-win10中的触摸板像macbook中一样丝滑原生效果?
windows·经验分享·macos·电脑
papership4 小时前
【入门级-数据结构-1、线性结构:链 表(单链表、双向链表、循环链表 )】
数据结构·算法·链表
zyl837214 小时前
Python 四大核心数据结构:列表、字典、元组、集合
数据结构·windows·python
霸道流氓气质5 小时前
Spring AI Alibaba + Ollama Function Calling 项目完整指南
人工智能·windows·spring
Zhibang Yue5 小时前
Windows下安装FreeSurfer(2026最新)
windows·wsl2·freesurfer
zyl837215 小时前
Python 函数、模块、异常处理 超详细入门教程
开发语言·windows·python
搬砖的小码农_Sky5 小时前
Windows环境下OpenClaw本地部署完整指南
人工智能·windows·ai·人机交互·agi
人道领域5 小时前
Windows 保姆级 Docker 安装教程(WSL2 版),一篇入门docker
windows·docker·容器