如何用C++编写三维映射

How to write 3d mapping in C++?

本文关键字:三维 映射 何用 C++      更新时间:2023-10-16

你能告诉我如何写多维映射吗。对于二维地图,我做了以下操作:

map<string, int> Employees
Employees[“person1”] = 200;

我试着使用类似于以下的东西进行三维映射。

map<string, string, int> Employees;
Employees[“person1”, “age”] = 200;

你能告诉我做这件事的正确方法吗?

有没有一种方法可以将所有映射元素初始化为0?就像在阵列上一样,我们可以说int array[10]={0};

您需要创建这样的映射映射。

map<string, map<string, int> > employees;
employees["person1"]["age"] = 200;

您可以使用utility库的pair类来组合两个对象:

map<pair<string, string>, int> Employees;
Employees[make_pair("person1", "age")] = 200;

请参阅http://www.cplusplus.com/reference/std/utility/pair/

您可以使用元组作为键,而不是嵌套映射;(这是一个c++11代码,您也可以对boost::tuple执行同样的操作)。

#include<map>
#include<tuple>
#include<string>
using namespace std;
map<tuple<string,string>,int> m;
int main(){
    m[make_tuple("person1","age")]=33;
}

您在这里所做的不是3D映射而是2D映射,如何使用stl::map作为二维数组

正确的3D映射将像一样

map<string, map<string, map<int, string> > > Employees;
Employees[“person1”][“age”][20] = "26/10/2014";