如何使用地图容器?

时间:2018-08-31 05:42:10

标签: c++

我对地图不是很有经验,希望有人可以给我一些有关如何使用它们的指示和示例。该地图的目标是跟踪服务员在一家餐厅服务多少顾客。餐馆关闭后,我将列出每个服务员以及服务人数。这是显示在h文件中的地图。

std::map<std::string,int> servers;

服务员可以表示为“ waiterName”。增加服务于服务生的顾客的例子是什么样的?我将如何列出服务的服务生和顾客?

cout << waiterName << " served " << (customers served by this waiter) << endl;

谢谢您的帮助!

2 个答案:

答案 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()可以搜索条目,插入,迭代和其他将映射表示为键值对的集合。