2010-10-25 93 views
0

我知道我可以指向向量的数量std::vector<int>使用for循环在一个vector<int*> onev_point_2_all等..但我怎么做,使用迭代器是否有创建一个迭代器的矢量而不是指针?C++向量的迭代器

+4

没有什么从创建一个'向量阻止你<性病::矢量:迭代>'。你有什么问题?你有什么尝试,你在哪里得到错误? – 2010-10-25 09:13:13

+0

感谢,是的,我已经试过,但我不知道如何或是否有任何限制VS指针,谢谢 – 2010-10-25 09:28:33

回答

3

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

您不需要底层集合能够解引用他们,所以如果你知道他们都是有效的迭代器,这一切你想做的事,你也没问题这样做。如果它们是非常量迭代器,那么也可以设置它们的值(如果没有设置迭代器)。

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