我试图澄清我在迭代器上的概念,在阅读Random Access Iterators
时,书中指出这些迭代器可以与实例iterat[myIndex]
的索引一起使用。现在,我已经使用随机访问迭代器和矢量,这是非常简单的:
std::vector<int>::iterator it;
for(it = vec.begin() ; it != vec.end() ; it++)
{
std::cout << *it
}
我想知道如何使用随机访问迭代器的索引以及何时需要?任何建议将不胜感激
答案 0 :(得分:3)
假设您需要查看位置的前置和后继(假设它们在那里)。你可以用
it[-1] // predecessor
it[0] // current position same as *it
it[1] // successor
当然,当你出现时,你也可以使用其他指数。虽然需要定义下标运算符,但我认为我不需要在算法中使用它。定位操作非常重要。