現在のイテレータ値へのポインタを取得できます。イベントは、私はその意志のリストを反復処理し、テストのいくつかの並べ替えを実行したいと思い発生は、私は2つのプライベートメンバを持つ私のクラスで
std::list<MyObject> objects;
MyObject *selecteObj;
リスト内のいずれかの項目に対してのみ真となります。他の場所で使用するためにその項目へのポインタを保存したいと思います。
他の場所で別の方法if (selectedObj !=null)
tmpObj->doSomething();
で
std::list<MyObject>::iterator i;
for (i = objects.begin(); i!=objects.end(); ++i){
if (i->test())
selectedObj = i;
}
i
はあなたがMyObject
へのポインタのように扱うことができていても、ポインタ、そのイテレータではありませんので、しかし、これは動作しません。
イテレータが内部的に格納しているポインタを取得して、別の場所で使用することは可能ですか?
私はこれについて間違って考えていますか?
私がやろうとしていることを達成する適切な方法は何ですか?
きっとあなたはない、 ''のstd ::のAddressOf(* i)を意味ですか? OPは、オブジェクトの '&' - オペレータを呼び出す方法を尋ねませんでした... –
@KerrekSB:私はあなたが 'std :: addressof'(' std :: address_of'ではなく)を意味していたと思いますか? :P – Nawaz
@Nawaz:ああ、私は何を言ったの? ;-) –