如何在unordered_map中存储2个以上的变量?

时间:2015-03-01 16:54:09

标签: c++ unordered-map

如何在std::unordered_map中存储2个以上的变量?

我想要这样的事情:

std::unordered_map<string, int, int, int> mapss = {{"a",1,1,1},{"b",1,2,3}};

2 个答案:

答案 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}}
};