Jon*_*Mee 6 c++ pointers iterator vector random-access
Angew评论说vector使用原始指针作为迭代器类型很好.那种情绪让我陷入了困境.
我开始研究它,发现对vector迭代器的要求只是它们是"随机访问迭代器",它明确指出指针符合条件:
指向数组元素的指针满足所有要求
是编译器甚至vector为调试目的提供迭代器的唯一原因,还是实际上我错过了一个要求vector?
\n\n\xc2\xa7 24.2.1
\n由于迭代器是指针的抽象,因此它们的语义是 C++ 中大多数指针语义的概括。这确保了每个采用迭代器的函数模板都可以与常规指针一起使用。
\n
所以是的,使用指针满足Random Access Iterator.
std::vector可能出于几个原因提供迭代器
标准说应该。
\nstd::map如果诸如或 之类的容器std::set提供迭代器而std::vector只提供指针,那就很奇怪了value_type*。迭代器提供跨容器库的一致性。
它允许向量类型的特殊化,例如,std::vector<bool>指针value_type*不是有效的迭代器。
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |