c ++在二维地图中找到一个关键匹配(地图地图)

时间:2015-04-23 20:30:07

标签: c++ stdmap

我有以下地图用于存储客户名称和使用其代码和描述选择的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"格式吗?这里的语法是什么?

要搜索商品代码,我会重复相同的代码,寻找客户找到的条目......

感谢您的帮助...

1 个答案:

答案 0 :(得分:5)

查找std :: map只需要一个键值。所以你会这样称呼它:

pip install future