在下面的代码部分中,交换后的结果内存结构是什么?是否会因为它们交换了下面的内存地址而导致泄漏?会不会因为他们做了一个深拷贝?如果这段代码被困在一个类中并且我正在用一块动态内存交换一个工作缓冲区怎么办?
#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;
}
编辑:发布了稍微错误的代码。修复了错误。