C++ STL反向迭代器是如何实现的?

2026-04-12 07:290阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1119个文字,预计阅读时间需要5分钟。

C++ STL反向迭代器是如何实现的?

反向迭代器实际上是对正向迭代器进行封装,用于实现运算符的结果不同。正向迭代器对原生生成器进行了封装,为了实现运算符的结果不同,正向迭代器也对原生生成器进行了封装。反向迭代器的适配器,即+Iterator,是哪个容器的迭代器?

反向迭代器其实就行对正向迭代器进行封装,源生迭代器,为了实现运算符的结果不同,正向迭代器也对源生迭代器进行了封装。

反向迭代器的适配器,就是 Iterator是哪个容器的迭代器,reverse_iterator < Iterator >就可以 适配出哪个容器的反向迭代器。复用的体现。

C++ STL反向迭代器是如何实现的?

反向迭代器适配器结构:

template <class Iterator, class Ref, class Ptr> class reverse_iterator { typedef reverse_iterator<Iterator, Ref, Ptr> self; public: // 重载运算符函数 private: Iterator _it; };

源码容器获取迭代器时具体情况,如图:

我们以为的情况:

这是源码里的实现的大概情况,begin()与rend()对称,end()与rbegin()对称。这与我们想的不一样,所以反向迭代器适配器内部实现的也有所不一样。

阅读全文

本文共计1119个文字,预计阅读时间需要5分钟。

C++ STL反向迭代器是如何实现的?

反向迭代器实际上是对正向迭代器进行封装,用于实现运算符的结果不同。正向迭代器对原生生成器进行了封装,为了实现运算符的结果不同,正向迭代器也对原生生成器进行了封装。反向迭代器的适配器,即+Iterator,是哪个容器的迭代器?

反向迭代器其实就行对正向迭代器进行封装,源生迭代器,为了实现运算符的结果不同,正向迭代器也对源生迭代器进行了封装。

反向迭代器的适配器,就是 Iterator是哪个容器的迭代器,reverse_iterator < Iterator >就可以 适配出哪个容器的反向迭代器。复用的体现。

C++ STL反向迭代器是如何实现的?

反向迭代器适配器结构:

template <class Iterator, class Ref, class Ptr> class reverse_iterator { typedef reverse_iterator<Iterator, Ref, Ptr> self; public: // 重载运算符函数 private: Iterator _it; };

源码容器获取迭代器时具体情况,如图:

我们以为的情况:

这是源码里的实现的大概情况,begin()与rend()对称,end()与rbegin()对称。这与我们想的不一样,所以反向迭代器适配器内部实现的也有所不一样。

阅读全文