使用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;
如果这是正确的方法,也请告诉我。谢谢!
答案 0 :(得分:4)
虽然使用其他答案中显示的insert
更有效,但您也可以使用
myMap["foo"] = {{1,2,3}};
如果简洁的代码对您更重要。
答案 1 :(得分:2)
您可以保存一行(但不是很多字符),如下所示:
myMap.insert(std::make_pair(myString,array<int,3>{{1,2,3}}));
BTW,根据GCC 4.7.2,您在tempArray
但是,如果myString
已经存在,则不会修改{{1}}的映射值。
如果您拥有一个拥有std::map::emplace的库,则可以保存更多字符。