2010-10-25 142 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

你可以有迭代器,向量的不必要的迭代器和同一集合不一定迭代器的載體,但它們都必須是同一類型的。

您不需要底層集合能夠解引用他們,所以如果你知道他們都是有效的迭代器,這一切你想做的事,你也沒問題這樣做。如果它們是非常量迭代器,那麼也可以設置它們的值(如果沒有設置迭代器)。

如果您需要檢查他們,看看他們是否是「結束」迭代器,或者從他們的集合中刪除它們,那麼你需要知道迭代器背後的底層集合。如果它們都來自直接相同的集合,但是如果它們來自不同的集合,則需要存儲指向其基礎集合的指針。請注意,它必須是指向底層集合的指針,而不是引用,就好像它們是它們必須可分配的向量項一樣。