Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用映射名称由字符串C++;_C++_Dictionary - Fatal编程技术网

C++ 使用映射名称由字符串C++;

C++ 使用映射名称由字符串C++;,c++,dictionary,C++,Dictionary,这是我的后续问题 我制作了一个小地图,我称之为BMW。它包含键用法和柴油机,如下所示 #include <iostream> #include <bits/stdc++.h> #include <map> #include <vector> using namespace std; int main() { // initialize container map<string, tuple<string, strin

这是我的后续问题

我制作了一个小地图,我称之为BMW。它包含键
用法
柴油机
,如下所示

#include <iostream>
#include <bits/stdc++.h>
#include <map>
#include <vector>
using namespace std;

int main()
{

    // initialize container
    map<string, tuple<string, string>> BMW;

    // insert elements
    BMW.insert({"Usage", {"1", "2"}});
    BMW.insert({"Disel", {"2", "3"}});

        string sFirst_value;
     string sSecond_value;

     //prints out the map
    for (const auto& x : BMW) {
        sFirst_value.assign(get<0>(BMW.find(x.first)->second)); 
        sSecond_value.assign(get<1>(BMW.find(x.first)->second));
        cout << x.first << "\n" << "Min: " << sFirst_value <<  "\n" << "Max: " << sSecond_value << "\n" << "\n";
    }

    return 0;
}

用一个小例子来扩展昆汀的评论:

std::map<std::string, std::map<std::string, std::tuple<std::string, std::string>>> mapMap;
std::string myCar = "BMW";
std::map<std::string, std::tuple<std::string, std::string>> &myCarMap = mapMap[myCar];
myCarMap.insert({"Usage", {"1", "2"}});

//Or simply
auto &bmwMap = mapMap["BMW"];
bmwMap.insert({"Usage", {"1", "2"}});
}
std::map;
std::string myCar=“BMW”;
std::map&myCarMap=mapMap[myCar];
插入({“用法”,{“1”,“2”});
//或者干脆
auto&bmwMap=mapMap[“宝马”];
插入({“用法”,{“1”,“2”});
}

也许你能找到比
mapMap
更好的名字;)

没有,但您可以将其全部存储在
地图中
。如何搜索该地图?你有一个小例子(我是C++的新手)吗?没有关系,但是如果你是C++的新手,你应该看看。只是为您指明未来项目的正确方向;)谢谢你能在第三行给我一些意见吗?我听不懂。我不明白
&myCar
做什么?这意味着变量
myCarMap
只是一个引用(几乎像一个指针)。如果没有
&
,我们将复制
mapMap[myCar]的结果。您可以在最后一个问题中了解更多有关此主题的信息。如果我想在第一张地图上找到汽车的名字,比如宝马,我该怎么做?这似乎不起作用:
Test3.assign(get(mapMap.find(“BMW”)->second))
mapMap.find(“BMW”)->second
是一个映射本身,而不是一个元组。
std::map<std::string, std::map<std::string, std::tuple<std::string, std::string>>> mapMap;
std::string myCar = "BMW";
std::map<std::string, std::tuple<std::string, std::string>> &myCarMap = mapMap[myCar];
myCarMap.insert({"Usage", {"1", "2"}});

//Or simply
auto &bmwMap = mapMap["BMW"];
bmwMap.insert({"Usage", {"1", "2"}});
}