gpt4 book ai didi

c++ - 使用具有由字符串 C++ 定义的 map 名称的 map

转载 作者:行者123 更新时间:2023-11-28 04:08:23 26 4
gpt4 key购买 nike

这是来自 Cout from a map with std::tuple 的后续问题

我制作了一张我称之为BMW 的小 map 。它包含键 UsageDiesel,如下所示。

#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;
}

无论如何我可以从字符串中调用 map 名称 BMW 而不是编写 BMW.insert({"Usage", {"1", "2"}});?像这样:

stirng Mycar;
Mycar.insert({"Usage", {"1", "2"}});

最佳答案

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

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"}});
}

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

关于c++ - 使用具有由字符串 C++ 定义的 map 名称的 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58304992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com