美文网首页C++步步为营
C++---CHAPTER 11: ASSOCIATIVE-CO

C++---CHAPTER 11: ASSOCIATIVE-CO

作者: 世界上的一道风 | 来源:发表于2019-08-04 09:54 被阅读0次

    小结

    关联容器通过关键字查找和提取元素。对关键字的使用将关联容器与顺序容器区分开来,顺序容器中是通过位置访问元素的。

    标准库定义了8个关联容器,每个容器:

    • 是一个map或者是一个setmap保存关键字-值对;set只保存关键字。
    • 要求关键字唯一或不要求。
    • 保持关键字有序或不保证有序。
    1. 允许重复关键字的容器的名字都包含有multi,而使用哈希技术的容器的名字都以unordered开头。set是一个有序集合,其中每个关键字只可以出现一次;而unordered_multiset则是一个无序的关键字集合,其中关键字可以出现多次。

    使用关联容器

    • 使用map
      定义一个map需要指定关键字和值的类型;
      map中提取的pair是一个模板类型,保存两个名为firstsecond的成员。
    int main() {
      map<string,size_t> word_count;
      string word;
      while(cin>>word && word!="stop")
        ++word_count[word];
      for(const auto &w: word_count)
        cout << w.first << " occurs " << w.second
        << ((w.second > 1) ? " times" : "time") << endl;
    }
    
    • 使用set:
      find调用返回一个迭代器,如果为找到,find返回尾后迭代器。
      map<string,size_t> word_count;
      //给定类型;列表初始化关联容器
      set<string> exclude={"The", "but","And"};
      string word;
      while(cin>>word && word!="stop")
        if(exclude.find(word)==exclude.end())
            ++word_count[word];
    

    关联容器概述

    相关文章

      网友评论

        本文标题:C++---CHAPTER 11: ASSOCIATIVE-CO

        本文链接:https://www.haomeiwen.com/subject/ksmddctx.html