我有以下代码。向量迭代器
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迭代器被设计成“看起来像”一个指针。实际上,指针可以被看作是迭代器的一个特例(它实际上是原始数组的迭代器类型)。 –