std::vector
とは対照的に、要素をメモリに継続的に保存しstd::list
ます。これにより、std::vector
すべてがきちんとパックされているため、要素を反復するときのパフォーマンスが向上し、std::list
.
問題は、ほとんどの場合、ポリモーフィズムのため、またはこれらのオブジェクトをコードの他の部分と共有するために、スマート ポインターをベクトルに格納することです。各オブジェクトは動的に割り当てられるようになったため、最終的に異なるメモリ位置に配置されると思います。これは a を使用する目的を無効にしstd::vector
、本質的に a のようなものに変えていstd::list
ますか? これを修正するためにできることはありますか?