我有以下代碼。向量迭代器
vector<IRD>* irds = myotherobj->getIRDs();//gets a pointer to the vector<IRD>
for(vector<IRD>::iterator it = irds->begin(); it < irds->end(); it++)
{
IRD* ird = dynamic_cast<IRD*>(it);
ird->doSomething();
//this works (*it).doSomething();
}
這似乎失敗了...我只想得到指向矢量中的每個元素的指針而不使用(* it)。遍。
- 如何獲取指向對象的指針?
- 當我迭代向量指針irds時,我究竟在迭代什麼?它是每個元素的副本,還是我在向量中使用實際對象時(* it).doSomething(),
謝謝解答這兩個問題,並修復了一個錯誤!來自C ...總是忘記引用類型...在某種意義上它們就像一個抽象指針嗎? – user623879
@ user623879迭代器被設計成「看起來像」一個指針。實際上,指針可以被看作是迭代器的一個特例(它實際上是原始數組的迭代器類型)。 –