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

How to store more than 2 variables in an unordered_map?

本文关键字:2个 存储 变量 映射 无序 一个      更新时间:2023-10-16

如何在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}}
};
相关文章: