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

kis*_*dbn 2 c++ unordered-map

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

我想要这样的东西:

std::unordered_map<string, int, int, int> mapss = {{"a",1,1,1},{"b",1,2,3}};
Run Code Online (Sandbox Code Playgroud)

Cor*_*mer 5

如果string是键,其余是值,则可以将值设为a tuple.

unordered_map<string, tuple<int, int, int>> mapss
Run Code Online (Sandbox Code Playgroud)

如果您不知道将有多少值,您可以使用 vector

unordered_map<string, vector<int>> mapss
Run Code Online (Sandbox Code Playgroud)


Vit*_*meo 5

您可以使用std::tuple,如Cyber​​所提到的,但我建议您创建一个简单的,struct如果您知道值代表什么.

它清楚地表达了你的意图.

例:

struct Color
{
    int r, g, b;
};

std::unordered_map<std::string, Color> colors = 
{
    {"red",  {255, 0, 0}},
    {"blue", {0, 0, 255}}
};
Run Code Online (Sandbox Code Playgroud)