c ++迭代器的向量

时间:2010-10-25 09:09:59

标签: c++ pointers iterator vector

据我所知,我可以在一个std::vector<int>等上使用for循环来指向向量vector<int*> onev_point_2_all的数量。但是我如何使用迭代器这样做是否有一种创建迭代器向量的方法指针向量?

1 个答案:

答案 0 :(得分:4)

你可以有一个迭代器的向量,不是向量的必要迭代器,也不一定是同一个集合的迭代器,但它们必须都是相同的类型。

您不需要底层集合就可以取消引用它们,因此如果您知道它们都是有效的迭代器,并且您只想这样做,那么您可以毫无困难地这样做。如果它们是非const迭代器,您还可以设置它们的值(如果没有设置迭代器)。

如果你需要检查它们是否是“结束”迭代器,或者从它们的集合中删除它们,那么你需要知道迭代器背后的底层集合。如果它们都来自同一个简单的集合,但如果它们来自不同的集合,则需要使用它们存储指向其底层集合的指针。请注意,它必须是指向底层集合的指针,而不是引用,就像它们是矢量项一样,它们必须是可分配的。