[英]What is the difference between accessing vector elements using an iterator vs an index?
使用迭代器和索引访问向量元素有什么好处?
为什么迭代器比索引更好?
但是,如果忽略不支持随机访问(列表,集等)的容器类型,迭代器仍然提供
模块化就是答案。 假设你将逻辑包装在一个函数调用中(一个好的做法)。 在这种情况下,使它接收迭代器将使它成为通用的,这样它就可以在C样式数组(指针),C ++ stl向量或任何真正表现得像迭代器容器的东西上运行,例如链接列表。
我说它跨容器的可移植性。
如果使用向量编写代码并使用索引进行迭代,则以后不能轻易地将代码更改为其他容器。
typedef std::vector<int> myContainer; //only change here for std::list
for ( myContainer::iterator iter = actualContainer.begin();
iter != actualContainer.end();
++iter)
{}
在上面的代码中,如果要从向量更改为列表,则很容易实现。 如果您使用过该索引,那么就无法实现。
否则,因为向量使用随机访问迭代器,所以它应该是相同的。 (索引或迭代器一切正常)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.