我对地图不是很有经验,希望有人可以给我一些有关如何使用它们的指示和示例。该地图的目标是跟踪服务员在一家餐厅服务多少顾客。餐馆关闭后,我将列出每个服务员以及服务人数。这是显示在h文件中的地图。
std::map<std::string,int> servers;
服务员可以表示为“ waiterName”。增加服务于服务生的顾客的例子是什么样的?我将如何列出服务的服务生和顾客?
cout << waiterName << " served " << (customers served by this waiter) << endl;
谢谢您的帮助!
答案 0 :(得分:2)
#include <map>
#include <string>
#include <iostream>
std::ostream& operator<<(std::ostream &os, std::pair<std::string, int> const &s)
{
os << s.first << " served " << s.second;
return os;
}
int main()
{
std::map<std::string, int> servers;
servers["foo"]++;
servers["foo"]++;
servers["foo"]++;
servers["foo"]++;
servers["bar"]++;
servers["bar"]++;
for (auto s : servers)
std::cout << s << '\n';
}
答案 1 :(得分:0)
for(auto const &waiterStat: servers) std::cout << waiterStat.first << " served " << waiterStat.second << " customers.\n";
您可以使用operator[]
来访问特定键的值,find()
可以搜索条目,插入,迭代和其他将映射表示为键值对的集合。