のstd::set
ような連続したメモリにオブジェクトを保存しますstd::vector
か?
これをWeb上で見つけることはできませんでした。cppreferenceはメモリ割り当ての詳細について言及していません。しかし、なぜそれが連続したメモリを使用できなかったのかわからないので、私の質問です。
boost :: flat_setも参照してください。
—
Caleth
「セットが反復されると、オブジェクトは連続したメモリロケーションに格納されます」または「すべてのオブジェクトは1つの大きなメモリチャンクに格納されます(ただし、任意の順序で)」のように「連続」することを意味しますか?
—
パブロH
一般に、「コンテナーAはコンテナーBと同じですか」と質問した場合、答えは「いいえ」です。そうでない場合、コンテナーAのみになります(コンテナーBを作成する目的は何ですか?)。もちろん、これはコンテナアダプタには当てはまりません
—
オービットでのライトネスレース
std::set
が、ここでは重要なことではありません。
set::insert
要件の読み取り:en.cppreference.com/w/cpp/container/set/insert "...イテレータまたは参照は無効化されていません..."なので、必要なときに再割り当てできませんstd::vector
。