代码之家  ›  专栏  ›  技术社区  ›  Zevvysan

如何使用地图容器?

c++
  •  -5
  • Zevvysan  · 技术社区  · 6 年前

    我对地图不是很有经验,希望有人能给我一些关于如何使用地图的指南和例子。这张地图的目标是跟踪一个服务员在一家餐厅里为多少顾客服务。餐厅关门后,我会列出每位服务员和服务人数。这是显示在h文件中的地图。

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

    服务员可以用“服务员姓名”来表示。给服务员增加顾客的例子是什么样的?我该如何列出服务生和顾客的名单?

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

    谢谢你的帮助!

    2 回复  |  直到 6 年前
        1
  •  2
  •   Swordfish    6 年前
    #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';
    }
    
        2
  •  0
  •   bipll    6 年前
    for(auto const &waiterStat: servers) std::cout << waiterStat.first << " served " << waiterStat.second << " customers.\n";
    

    你可以用 operator[] 要访问特定键的值, find() 为了搜索一个条目,插入、迭代和其他方法将map表示为键值对的集合。