ベクトルtempを削除した場合、basket [1]オブジェクトも破棄しますか?
いいえ。まず第一に、あなたは削除する tempことはできません; むしろ、スコープ外になると破壊されます。deleteそして、これが発生した場合、ベクトルの要素によってポイントされるオブジェクトは自動的にdされません。
ただし、これは特定の問題ではありませんvector。を使用してlistも、この問題を回避することはできません。問題はむしろ生のポインタにあります。ポイントされたオブジェクトを指す最後のポインターの有効期間が終了したときに、ポイントされたオブジェクトの割り当てが自動的に解除されるようにする場合は、スマートポインターを使用する必要があります。
shared_ptrアプリケーションに必要な所有権ポリシーに応じて、とのいずれかを選択できますunique_ptr。注意点shared_ptrは、相互に参照するオブジェクトが相互に存続するのを防ぐために、参照サイクルを回避する必要があるということです。weak_ptrこの点を確認することをお勧めします。
最後に、を使用しない正当な理由がない限り、コンテナのデフォルトの選択である必要があります。C++11規格のパラグラフ23.2.3/2から:vectorvector
シーケンスコンテナは、プログラマーにさまざまな複雑さのトレードオフを提供するため、それに応じて使用する必要があります。vectorまたははarray、デフォルトで使用されるシーケンスコンテナのタイプです。listまたはforward_list、シーケンスの途中から頻繁に挿入および削除される場合に使用する必要があります。dequeは、ほとんどの挿入と削除がシーケンスの最初または最後に行われる場合に選択されるデータ構造です。