6
std :: vector :: swapメソッドを使用して、C ++で2つの異なるベクトルを交換しても安全ですか?
次のコードがあるとします。 #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; 2つのベクトルをstd::vector::swapメソッドで交換しても安全WidgetVector.swap(Widget2Vector);ですか?それともUBにつながりますか?