这有点类似于4d mapping in C++?这个问题,也是我以前在C++中使用Use a map with the map name defined by a string C++在 map 上遇到的问题之一
我有一个看起来像这样的代码(该代码不起作用,停在向 map 提供输入的行上):
#include <iostream>
#include <string>
#include <tuple>
#include <map>
#include <vector>
using namespace std;
int main()
{
map<string, //Volkswagen (car brand)
map<string, //series
map<int, //in this example 1
tuple<string, string>>>> mapMapMap;
string myCarmapMapMap = "Volkswagen";
int Number = 1;
mapMapMap[myCarmapMapMap]["3 series"][Number] = {90, 20};,
string Output;
Output.assign(get<0>(mapMapMap[myCarmapMapMap].find("3 series")->second));
cout << "\n" << "------------" << "\n" << Output << "\n"<< "------------" << "\n";
}
我想要做的是为
Volkswagen
,3 series
和1
分配两个值,然后可以像这样调用它:Volkswagen -> 3 series -> 1 -> <0> (value 1).
这是我收到的错误消息:
|19|error: expected primary-expression before ',' token|
我也尝试过:
mapMapMap.insert({myCarmapMapMap, "3 series", Number, {"90", "20"}});
但这也不起作用。如何将4d map 与元组结合在一起?
最佳答案
更改您的作业,以便它实际上可以形成一个tuple<string, string>
(请注意右侧的引号):
mapMapMap[myCarmapMapMap]["3 series"][Number] = {"90", "20"};
Example
另外,删除该行末尾的
,
。您的查询很可能可以通过再次包含
Number
来解决,例如:string output = get<0>(mapMapMap[myCarmapMapMap].find("3 series")->second[Number]);
关于c++ - C++中具有元组的4D映射,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58378750/