5

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;

これが本当に正しい方法かどうかも教えてください。ありがとう!

4

2 に答える 2

2

次のように行を保存できます (ただし、多くの文字はありません)。

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

ところで、GCC 4.7.2 によると、初期化子の周りに中かっこのペアがありませんtempArray

ただし、マッピングされた値myStringが既に存在する場合、これは変更されません。

また、std::map::emplaceを含むライブラリがある場合は、より多くの文字を節約できます。

于 2013-03-31T21:42:26.087 に答える