STL ベクトルの連続ストレージの仮定
変更された STL ベクトルの要素がメモリ内に連続して格納されると仮定できますか?
質問:
サイズ変更された STL ベクトル vc
答え:
はい、ただし注意点があります。
によるとC 03 標準 (23.2.4.1) では、STL ベクトル内の要素は連続して格納されます。これは、要素タイプ T (bool 以外) を持つ任意のベクトル v について、0 から v.size() - 1 までの n のすべての値について &vc[0] n が &vc[n] と等しいことを意味します。
注意:
この仮定は一般的に当てはまりますが、ベクトルに要素を追加するときに発生する可能性のあるメモリの再割り当てに注意することが重要です。ベクトルの容量を超えると、ベクトルのデータが新しいメモリ ブロックに移動され、既存のポインタまたはイテレータが無効になる場合があります。したがって、この連続ストレージの前提に依存する場合は、再割り当ての可能性を考慮することが重要です。
以上がSTL ベクトル メモリはサイズ変更後も連続していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。