用C++编写4d映射?

Jus*_*n k 5 c++ visual-c++

你能告诉我怎么写多维地图吗?对于二维地图,我做了以下内容:

map<string, int> Employees
Employees[“person1”] = 200;
Run Code Online (Sandbox Code Playgroud)

我试图使用类似于以下4d映射的东西.

map<string, string, string, int> Employees;
Employees[“person1”]["gender"][“age”] = 200;
Run Code Online (Sandbox Code Playgroud)

你能告诉我正确的方法吗?

Jer*_*fin 6

您通常希望将密钥的所有三个部分组合到一个类中,并使用单个比较运算符.您可以使用类似a pair<pair<string, string>, string>或boost :: tuple的东西,也可以自己定义:

class key_type { 
    std::string field1, field2, field3;
public:
    bool operator<(key_type const &other) { 
        if (field1 < other.field1)
            return true;
        if (field1 > other.field1)
            return false;
        if (field2 < other.field2)
            return true;
        if (field2 > other.field2)
            return false;
        return field3 < other.field3;
    }
};
Run Code Online (Sandbox Code Playgroud)


Moh*_*han 5

map<string, map<string, map<string, int> > > employees;
employees["person1"]["gender"]["age"] = 200;
Run Code Online (Sandbox Code Playgroud)