如何在std::unordered_map
中存储2个以上的变量?
我想要这样的事情:
std::unordered_map<string, int, int, int> mapss = {{"a",1,1,1},{"b",1,2,3}};
答案 0 :(得分:5)
如果string
是关键字,其余为值,那么您可以将值设为tuple
。
unordered_map<string, tuple<int, int, int>> mapss
如果你不知道会有多少值,你可以使用vector
unordered_map<string, vector<int>> mapss
答案 1 :(得分:5)
您可以像Cyber提到的那样使用std::tuple
,但如果您知道值代表什么,我建议您创建一个简单的struct
。
它清楚地表达了你的意图。
示例:
struct Color
{
int r, g, b;
};
std::unordered_map<std::string, Color> colors =
{
{"red", {255, 0, 0}},
{"blue", {0, 0, 255}}
};