[英]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.