gpt4 book ai didi

c++ - 通过 mapped_type 的 r 值 move 插入映射条目

转载 作者:IT老高 更新时间:2023-10-28 23:14:43 24 4
gpt4 key购买 nike

我有一个(相当)简单的键类型和复杂的映射类型的 map ,如下所示:

map<string, vector<string>> myMap;

如果我有 vector<string>手头,是否可以在复制键但 move 映射值的映射中插入一个条目?也就是说,有没有办法:

string key = "Key";
vector<string> mapped;
for (int i = 0; i < 1000; ++i)
mapped.push_back("Some dynamic string");

// Insert by moving mapped; I know I'm done with it
myMap.insert(make_pair(key, move(mapped))); // This seems to move key too

最佳答案

您正在寻找 std::map::emplace :

myMap.emplace(key, move(mapped));

这会就地调用适当的 std::pair 构造函数:

template< class U1, class U2 >
pair( U1&& x, U2&& y );

由于第一个参数是左值,因此键被复制,但第二个(映射)是右值,因此被 move 构造。

关于c++ - 通过 mapped_type 的 r 值 move 插入映射条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14581414/

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