为什么 std::vector::iterator 不是连续迭代器?

xml*_*lmx 0 c++ iterator type-traits c++-concepts c++20

按照cppref页面std::vector

iterator 传统随机访问迭代器

同样来自另一个cppref 页面

以下标准库类型是LegacyContiguousIterators

vector::iterator 对于 bool 以外的 value_type。

哪个是正确的?

eer*_*ika 5

两者都是正确的。所有向量迭代器都是随机访问迭代器。除了 bool 的向量之外的所有向量迭代器都是连续迭代器。请注意,所有连续迭代器也是随机访问迭代器。

前一个声明并没有提供尽可能多的信息,并且可能没有更新,因为 c++17 的更改引入了连续迭代器要求的名称。