c ++在二维地图(地图的地图)中找到关键匹配
c++ find a key match in a bi-dimensional map (map of map)
我有以下用于存储客户名称的地图和使用其代码和描述选择的 itens 字典,例如:
Name Item Code, Item Description
Customer1 -> 1234, Item 1
1233, Item 2
1232, Item 3
所以我使用以下结构:
std::map<std::string, std::map<std::string, std::string>> purchase_list;
现在我需要查找现有名称和现有项目代码。
要查找现有名称:
if (purchase_list.find(purchase_list.begin(), purchase_list.end(), "SearchName") != purchase_list.end())
std::cout << "SeachName found!!" << std::endl;
对我来说这应该可行,但我在编译时遇到以下错误:
no matching function for call to ‘std::map<std::basic_string<char>, std::map<std::basic_string<char>, std::basic_string<char> > >::find(std::map<std::basic_string<char>, std::map<std::basic_string<char>, std::basic_string<char> > >::iterator, std::map<std::basic_string<char>, std::map<std::basic_string<char>, std::basic_string<char> > >::iterator, std::string&)’ search_name) == purchase_list.end())
我要更改 "SearchName"
格式吗?这里的正确语法是什么?
要搜索商品代码,我会重复相同的代码来查找为客户找到的条目...
感谢您的帮助...
查找 std::map 只需要一个键值。所以你会这样称呼它:
if (purchase_list.find("SearchName") != purchase_list.end())
std::cout << "SearchName found!!" << std::endl;
我有以下用于存储客户名称的地图和使用其代码和描述选择的 itens 字典,例如:
Name Item Code, Item Description
Customer1 -> 1234, Item 1
1233, Item 2
1232, Item 3
所以我使用以下结构:
std::map<std::string, std::map<std::string, std::string>> purchase_list;
现在我需要查找现有名称和现有项目代码。
要查找现有名称:
if (purchase_list.find(purchase_list.begin(), purchase_list.end(), "SearchName") != purchase_list.end())
std::cout << "SeachName found!!" << std::endl;
对我来说这应该可行,但我在编译时遇到以下错误:
no matching function for call to ‘std::map<std::basic_string<char>, std::map<std::basic_string<char>, std::basic_string<char> > >::find(std::map<std::basic_string<char>, std::map<std::basic_string<char>, std::basic_string<char> > >::iterator, std::map<std::basic_string<char>, std::map<std::basic_string<char>, std::basic_string<char> > >::iterator, std::string&)’ search_name) == purchase_list.end())
我要更改 "SearchName"
格式吗?这里的正确语法是什么?
要搜索商品代码,我会重复相同的代码来查找为客户找到的条目...
感谢您的帮助...
查找 std::map 只需要一个键值。所以你会这样称呼它:
if (purchase_list.find("SearchName") != purchase_list.end())
std::cout << "SearchName found!!" << std::endl;