C++ 使用映射名称由字符串C++;
这是我的后续问题 我制作了一个小地图,我称之为BMW。它包含键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
用法
和柴油机
,如下所示
#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"}});
}