【发布时间】:2013-10-05 21:37:07
【问题描述】:
我试图澄清我关于迭代器的概念,在阅读Random Access Iterators 时,本书指出这些迭代器可以与实例iterat[myIndex] 的索引一起使用。现在我以一种简单的方式使用了带有向量的随机访问迭代器:
std::vector<int>::iterator it;
for(it = vec.begin() ; it != vec.end() ; it++)
{
std::cout << *it
}
我想知道如何将索引与随机访问迭代器一起使用,什么时候需要?任何建议将不胜感激
【问题讨论】:
-
例如,如果您想实现自己的通用二进制搜索算法。您可以将参数设为
iterators,并且您必须访问O(1)中的元素。所以你需要一个随机访问迭代器。如何使用?it = vec.begin(); end = vec.end(); newpos = it + ((end - it) / 2);。在这种情况下,newpos将介于it和end之间。