私はいくつかのC++コードを書いています。これは、サイズが変化しているベクトルの束を操作し、したがって、常に再割り当てされています。C++では、どのようにしてベクトルへのポインタを取得できますか?
私は、これらのベクトルにベクトルを再配置した後でも有効な "ポインタ"を取得したいと考えています。より具体的には、これらの「ポインター」がどのベクトルを指しているのか、どのベクトルを指しているのかを覚えておきたいだけです。私が標準(* ptr)構文を使ってそれらを逆参照するとき、私は彼らに明白な検索をさせたいだけです。
明らかに、実際のポインタは再割り当て後に有効ではなく、再配置後もイテレータが有効ではないことがわかります。また、オブジェクトの前に要素が挿入されているかどうかは気にしないので、これらのポインタは実際にベクトルとインデックス以外のものを覚える必要はありません。
今、私はこのようなクラスを自分で簡単に書くことができました。誰か(Boost?STL?)はすでに私のためにそれをしていますか?
:答えは私の質問には対応していません。 この機能が標準ライブラリであるかどうか尋ねました。私は「ノー」と回答しますか?
PSを。これが愚かで重複した質問であれば、誰かが参照を提供した場合は削除してもよろしいです。ありがとう! –
std :: vector <>を使用できない理由はありますか? –
明らかに、彼はベクトルだけでなくベクトル内の位置も保持したいからです。ベクタが決して再割り当てされなかった場合、イテレータが必要になります。 「考えてください」ベクトルバー; Myiterator mi(バー、3);だから* miは常にbar [3]になります。 –