gpt4 book ai didi

c++ - 放置 map 的标准方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 23:04:19 30 4
gpt4 key购买 nike

标准好像有点broken在这一点上,据我所知,它只给我们留下了用 Type ( from cppreference ) 的非一元构造函数放置映射的“正确”方法:

std::map<std::string, std::string> m;
// uses pair's piecewise constructor (overload 6)
m.emplace(std::piecewise_construct,
std::forward_as_tuple("c"),
std::forward_as_tuple(10, 'c'));

因为这太丑陋了,我想知道是否有一种标准的、很好的方式来放置 map 元素,而不需要调用 Type 的复制构造函数。目前我正在这样做:

m.emplace("c",std::string(10, 'c'));

但这并不是特别包容。有没有更好的办法?

最佳答案

emplace std::map<K,T> 中的参数转发给 std::pair<const K, V>构造函数。这意味着您仅限于可用 ones .

如您所见,您无法改进语法,唯一的可变结构是您在第一个代码片段中使用的结构。所有其他人都需要一个已经完成的 KV .

关于c++ - 放置 map 的标准方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23055149/

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