私は以下のコードを持っています。ベクトルイテレータ
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)(。itSomething)、
両方の質問にお答えいただき、ありがとうございました。 Cから来て...いつも参照型を忘れています...ある意味で抽象ポインタのようなものですか? – user623879
@ user623879イテレータは、ポインタのように見えるように設計されています。実際、ポインタはイテレータの特別なケースとみなされます(実際には、生の配列のイテレータタイプです)。 –