繁体   English   中英

在std :: map中为std :: array分配多个值

[英]Assigning multiple values to std::array in std::map

使用std :: array时,我可以一次分配值:

std::array<int, 3> a2 = {1, 2, 3}; 

但是当上面的数组合并到一个地图中时,我不知道最好的方法:

using namespace std;
map <string, array<int, 3>> myMap;

//I'm doing it like below now...

array<int, 3> tempArray = {1,2,3}; // can I save this line somehow?
myMap[myString] = tempArray;

如果这确实是正确的方法,也请告诉我。 谢谢!

虽然使用insert如另一个答案所示更有效,但您也可以使用

myMap["foo"] = {{1,2,3}};

如果简洁的代码对您更重要。

你可以保存一行(虽然不是很多字符),如下所示:

myMap.insert(std::make_pair(myString,array<int,3>{{1,2,3}}));

顺便说一下,根据GCC 4.7.2,你在tempArray的初始化器周围缺少一对括号

但是,如果myString已经存在,则不会修改myString的映射值。

如果你有一个拥有std :: map :: emplace的库,你可以保存更多的字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM