你能告诉我怎么写多维地图吗?对于二维地图,我做了以下内容:
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)
你能告诉我正确的方法吗?
您通常希望将密钥的所有三个部分组合到一个类中,并使用单个比较运算符.您可以使用类似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)
map<string, map<string, map<string, int> > > employees;
employees["person1"]["gender"]["age"] = 200;
Run Code Online (Sandbox Code Playgroud)