该页面声明string::iterator
并且string::const_iterator
是“编译器特定的迭代器类型”。这是否意味着它string::iterator
属于 以外的类别random_access_iterator
?
问问题
341 次
4 回答
12
ISO C++03,21.3-2
状态:
(...)另外,因为 basic_string 支持的迭代器是 随机访问迭代器(...)
所以是的,那些必然是随机访问迭代器。
于 2012-07-10T21:18:39.387 回答
5
看着 N337621.4/3
basic_string 支持的迭代器是随机访问迭代器。
对于此类任务,手头有一个标准(或草案)总是一个好主意。习惯在那里查找东西需要一段时间,但它是第一手资源。
于 2012-07-10T21:21:05.400 回答
3
这个页面说std::string::iterator
是一个RandomAccessIterator
,并且比 cplusplus.com 更值得信赖。
于 2012-07-10T21:17:12.270 回答
3
这并不意味着它不是随机访问迭代器(正如其他答案所说,标准要求它是随机访问迭代器。)
这意味着确切的迭代器类型是未指定的,即它们可能是char*
或它们可能是std::string::__iterator
或__gnu_cxx::__normal_iterator<char, std::string>
其他东西。允许任何这些实现选择,只要它满足随机访问迭代器的要求并且可以通过名称引用string::iterator
于 2012-07-10T22:52:10.193 回答