2

我试图澄清我关于迭代器的概念,并且在阅读Random Access Iterators本书时指出这些迭代器可以与实例索引一起使用iterat[myIndex]。现在我以一种简单的方式使用了带有向量的随机访问迭代器:

std::vector<int>::iterator it;

for(it = vec.begin() ; it != vec.end() ; it++)
{
 std::cout << *it
}

我想知道如何使用带有随机访问迭代器的索引以及何时需要?任何建议,将不胜感激

4

1 回答 1

3

假设您需要查看某个职位的前任和继任者(假设他们在那里)。你可以使用

it[-1] // predecessor
it[0]  // current position same as *it
it[1]  // successor

当然,如果存在,您也可以使用其他索引。尽管需要定义下标运算符,但我认为我在算法中不需要它。定位操作更为重要。

于 2013-10-05T21:43:30.660 回答