-3

我知道vector<double>::iterator返回随机访问迭代器类型。返回的迭代器类型是list<double>::iterator什么。它是双向迭代器吗?

4

3 回答 3

5

是的bidirectional iterator

n3337 23.3.5.1/1

列表是支持双向迭代器的序列容器

于 2012-08-23T16:03:11.363 回答
3

它是双向的,因为您仍然可以在其上使用 ++ 和 -- 。如果你只能做 ++ 它是一个前向迭代器(见 std::forward_list )。

于 2012-08-23T16:01:54.460 回答
0

好的,我的大部分问题本身都是错误的。经过长时间的 C++ 参考研究,我明白了。由于我的问题没有多大意义,我会自己回答。vector<double>::iterator返回一些东西是没有意义的。它是一个类型.C++ 标准库,在类中大量使用 typedef 来给其他类型起别名。

类型也是如此vector<double>:iterator。更准确地说,它是一个别名(使用 typedef)。在 的情况下,别名是类型。在 的情况下,vector<double>::iterator是类型迭代器的别名。random-access Iteratorlist<double>::iteratoriteratorbi-directional

这也类似于vector<double>::size_typewhere size_typeis a type ,它是 type 的size_t别名

typedef size_t size_typevector<double>课堂上。

如果您发现任何误解或错误。请澄清。

于 2012-08-25T20:41:47.230 回答