0

Order" " オブジェクトへのポインタのベクトルがあるとします。ここで、このベクトルから注文を削除したいと思います。このようなポインターを削除する正しい方法は次のとおりですか?

std::vector<Order*> orders; 

// somehow I obtained a vector of Order*, and an iterator it that points to
// an order that I want to remove completely. 

// does the following work? 
Order *order = *it;
orders.erase(it);
delete order;
4

3 に答える 3

3

これにより、注文オブジェクトが削除されます。はい、これが正しい方法です。それでも、や
のようなスマート ポインターの使用について考える必要があります。unique_ptrshared_ptr

于 2012-05-31T15:58:56.533 に答える
3

ポインターは の結果でしたnewか? 他の誰かが最初にそれを削除しましたか? 「はい」と「いいえ」の場合、コードはオブジェクトを削除します。

于 2012-05-31T16:05:45.663 に答える
0

はい。これが正しい方法です。コンテナーは、消去されてもコンテンツを削除しません。

于 2012-05-31T15:58:22.243 に答える