如何在一个无序映射中存储2个以上的变量



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

我想要这样的东西:

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

如果string是键,其余都是值,那么您可以将该值设为tuple

unordered_map<string, tuple<int, int, int>> mapss

如果你不知道会有多少值,你可以使用vector

unordered_map<string, vector<int>> mapss

正如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}}
};

最新更新