C语言中如何巧妙设计反向迭代器,实现长尾链表的高效遍历?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1622个文字,预计阅读时间需要7分钟。
目录+前言+一、反向迭代器的结构+二、反向迭代器的接口实现+一、*运算符重载+二、+运算符重载+三、-运算符重载+四、-操作符重载+三、关于反向迭代器的一些讨论+前言+STL中不少容器需要有迭代器
目录
- 前言
- 一、反向迭代器的结构
- 二、反向迭代器的接口实现
- 1、*运算符重载
- 2、算术运算符 ++ - -的重载
- 3、->操作符重载
- 三、关于反向迭代器的一些讨论
前言
STL中不少的容器需要有迭代器这样的设计,特别是正向迭代器,几乎每个容器都有自己的特定实现方式,有了正向迭代器之后,我们还要提供反向迭代器以供一些特殊的需求,但是许多容器的正向迭代器实现的方式不一样,如果我们要实现其反向迭代器,每个容器的反向迭代器的实现方式也不一样,有没有一种方法能够统一反向迭代器的实现方式呢?
有的,那就是拿已有的正向迭代器进行封装,这样只要我们实现了正向迭代器,反向迭代器自然而然就形成了,本篇文章我们就来一起探究这种设计方式。
一、反向迭代器的结构
我们设计的反向迭代器是用正向迭代器实现的,这样反向迭代器的实现方式就统一了,那么我们反向迭代器的成员变量就是一个正向迭代器,关于成员函数,我们反向迭代器提供的接口与正向迭代器提供的接口一样。
本文共计1622个文字,预计阅读时间需要7分钟。
目录+前言+一、反向迭代器的结构+二、反向迭代器的接口实现+一、*运算符重载+二、+运算符重载+三、-运算符重载+四、-操作符重载+三、关于反向迭代器的一些讨论+前言+STL中不少容器需要有迭代器
目录
- 前言
- 一、反向迭代器的结构
- 二、反向迭代器的接口实现
- 1、*运算符重载
- 2、算术运算符 ++ - -的重载
- 3、->操作符重载
- 三、关于反向迭代器的一些讨论
前言
STL中不少的容器需要有迭代器这样的设计,特别是正向迭代器,几乎每个容器都有自己的特定实现方式,有了正向迭代器之后,我们还要提供反向迭代器以供一些特殊的需求,但是许多容器的正向迭代器实现的方式不一样,如果我们要实现其反向迭代器,每个容器的反向迭代器的实现方式也不一样,有没有一种方法能够统一反向迭代器的实现方式呢?
有的,那就是拿已有的正向迭代器进行封装,这样只要我们实现了正向迭代器,反向迭代器自然而然就形成了,本篇文章我们就来一起探究这种设计方式。
一、反向迭代器的结构
我们设计的反向迭代器是用正向迭代器实现的,这样反向迭代器的实现方式就统一了,那么我们反向迭代器的成员变量就是一个正向迭代器,关于成员函数,我们反向迭代器提供的接口与正向迭代器提供的接口一样。

