iterator简单描述

Posted 月落无影

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iterator简单描述相关的知识,希望对你有一定的参考价值。

Item 26. Prefer iterator to const iterator, reverse_iterator, and const_reverse_iterator.

上面一段话,是《Effective STL》中的一节。我在下面简单摘抄了一下:

我之所以要将上述图片贴在这里,是因为,我在实际运用中,需要用到iterator向const_iterator的转化,虽然我知道在VS下,iterator可以隐式转化为const_iterator,但是,编写的程序需要在linux下运行,所以有些犹豫,故认真查找了一下。

对于上面的第一点,有些需要说明:

(1)在C++11之后,insert,erase函数的第一个参数,已经由iterator改为const_iterator。这个也非常合理,因为,原来传入iterator的调用,现在可以隐式转变为const_iterator,而且新的函数可以接受const_iterator的参数。

(2)reverse_iterator和const_reverse_iterator并不能传入insert,erase之类的函数,虽然从感觉上来看,reverse_iterator应该是一个iterator,const_reverse_iterator应该是const_iterator,可能将传入的参数,用forward_iterator之类的名字可能会更好,然而forward_iterator总是会让人想到forward_iterator_tag,在模板使用中,很多时候会使用类似于ForwardIterator之类的名字。

以上是关于iterator简单描述的主要内容,如果未能解决你的问题,请参考以下文章

[Design Pattern] Iterator Pattern 简单案例

迭代器(Iterator)的mutationAndImmutation异常解决方法

Iterator to list的三种方法

iter() 不适用于 datetime.now()

foreach的使用原理简单解析

Iterator