gpt4 book ai didi

c++ - 用临时 map 交换 map 实例是否安全?

转载 作者:搜寻专家 更新时间:2023-10-31 01:02:55 24 4
gpt4 key购买 nike

    using std::map;
map<string, int> mapStrToInt;
{
map<string, int> mapStrToInt2;
mapStrToInt2[ "h1" ] = 100;
mapStrToInt2[ "h2" ] = 200;
mapStrToInt2[ "h3" ] = 300;
mapStrToInt2[ "h4" ] = 400;

mapStrToInt.insert( mapStrToInt2.begin( ), mapStrToInt2.end( ) );
mapStrToInt.swap( mapStrToInt2 ); // is this code safe?
}
// at this point mapStrToInt2 has been destroyed.

问题> 我已经用 VS2013 测试了这段代码,mapStrToInt 的内容已与 mapStrToInt2 的内容交换。但是,我仍然想确认交换临时对象的内容是安全和合法的。

谢谢

最佳答案

既安全又合法。当交换两个容器的内容时​​,内容的所有权从一个更改为另一个。所以 mapStrToInt 的旧内容归临时所有,并在退出范围时不复存在,而临时的旧内容由 mapStrToInt 接管。

关于c++ - 用临时 map 交换 map 实例是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26302846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com