人、私はこのプログラミングの話題には新しくありません。今までは、グーグルで答えを見つけるのはかなり簡単でしたが、ここで私は尋ねたいことを表現するのに大変なことがありました。私は試してみましょう:ベクトルを消去すると、メモリを解放する前にデストラクタが呼び出されます。今、struct-vectorが破壊された場合、どのように反応しますか? 1つはこれらのもののデストラクタを定義しませんが、構造体が「破壊された」場合、そのメンバのそれぞれのデストラクタも呼び出されると仮定するのは正しいですか?vector :: erase()は構造体のメンバベクトルも消去します
例を挙げましょう:この場合
#include <string>
#include <vector>
struct ding_t {
std::string dang;
} foo;
strung boom_t {
vector <ding_t> chuck;
} bar;
int main() {
vector <boom_t> tom;
tom.resize(10);
tom[4].chuck.resize(5);
tom[4].chuck[3].dang = "jerry";
tom.erase();
return 0;
}
、
tom[4].chuck.resize(5);
によって割り当てられたメモリも同様に解放されるのですか?私の語彙は申し訳ありませんが、現時点ではポインタから、より洗練されたcpp言語に相当するベクトルに移行しようとしています。私は私のポイントを得たことを願っています。事前にお世話になりました。私が言ったように、これが既に尋ねられている場合は私にリダイレクトしてください。私はこの質問をどのように囲むべきかわかりません。
あなたが働いている言語のタグを追加すると、より多くの注目を集めることができます。申し訳ありませんがあなたの質問に答えることはできません。 + 1'd – vdbuilder