安吉发表了评论 that a vector
使用原始指针作为迭代器类型就可以了。这让我有点困惑。
我开始研究它,发现需要vector
迭代器只是它们“随机访问迭代器”明确指出指针符合以下条件:
指向数组元素的指针满足所有要求
这是编译器提供迭代器的唯一原因vector
出于调试目的,或者实际上我错过了一个要求vector
?
§ 24.2.1
由于迭代器是指针的抽象,因此它们的语义是大多数语义的概括
C++ 中的指针。这确保了每个采用迭代器的函数模板都可以很好地工作
常规指针。
所以是的,使用指针满足了所有的要求Random Access Iterator
.
std::vector
可能出于几个原因提供迭代器
-
标准说应该。
-
如果像这样的容器,那就很奇怪了std::map
or std::set
提供迭代器,同时std::vector
只提供了一个value_type*
指针。迭代器提供跨容器库的一致性。
-
它允许向量类型的特殊化,例如,std::vector<bool>
其中一个value_type*
指针不是有效的迭代器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)