【发布时间】:2020-04-13 04:31:12
【问题描述】:
假设你有以下代码:
#include <iostream>
#include <string>
#include <vector>
int main()
{
std::vector<std::string> First{"example", "second" , "C++" , "Hello world" };
std::vector<std::string> Second{"Hello"};
First.swap(Second);
for(auto a : Second) std::cout << a << "\n";
return 0;
}
想象一下向量不是std::string,而是类:
std::vector<Widget> WidgetVector;
std::vector<Widget2> Widget2Vector;
使用std::vector::swap 方法交换两个向量是否仍然安全:WidgetVector.swap(Widget2Vector); 否则会导致 UB?
【问题讨论】:
标签: c++ c++11 vector stdvector swap