1

以下のコードのセクションで、スワップ後のメモリ構造はどうなるでしょうか? 下のメモリアドレスがスワップされているため、リークはありますか? 彼らはディープコピーをしたので大丈夫でしょうか?このコードがクラス内でスタックしていて、作業バッファーを動的メモリの一部と交換していたらどうなるでしょうか?

#include <iostream>
#include <vector>

int main()
{
    std::vector<std::string> * ptr_str_vec =
        new std::vector<std::string>();
    ptr_str_vec->push_back("Hello");

    std::vector<std::string> str_vec;
    str_vec.push_back("World");

    ptr_str_vec->swap(str_vec);

    delete ptr_str_vec;
    //What would be the resulting structures?

    return 0;
}

編集:わずかに欠陥のあるコードを投稿しました。エラーを修正しました。

4

3 に答える 3