コンテナがC++でどのように実装されているかを理解するのが難しいです。具体的には、スタックに割り当てられたデータとヒープに割り当てられたデータをどのように処理できますか。例:コンテナクラスに動的に割り当てられたメモリを扱う
vector<int> VectorA;
VectorA.push_back (1);
VectorA.push_back (2);
VectorA.push_back (3);
vector<int*> VectorB;
VectorB.push_back (new int (1));
VectorB.push_back (new int (2));
VectorB.push_back (new int (3));
VectorBの整数が正しく削除されることをどう扱うか。 std :: vectorはデストラクタを呼び出すだけで、実際には何も削除していないことを覚えています。また、独自のLinkedListクラスを実装したい場合は、この特定の問題をどのように処理しますか?
後者の場合、スマートポインタを使用しない場合は、ベクターから項目を削除する場所は、ポインタが参照するオブジェクトを必ず削除する必要があります。 – Joe