Zheng Chu's Blog

让希望永驻


  • 主页

  • 所有专栏

  • 历史文章

  • 标签

  • 关于我

C++---CHAPTER-11---ASSOCIATIVE-CONTAINER

Posted on 2019-09-04 Edited on 2020-12-06 In C++ Views:

小结

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

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

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

使用关联容器

  • 使用map:
    定义一个map需要指定关键字和值的类型;
    map中提取的pair是一个模板类型,保存两个名为first和second的成员。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    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返回尾后迭代器。
    1
    2
    3
    4
    5
    6
    7
    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];

关联容器概述

# PRIMER
C++---CHAPTER-10---ALGORITHM
C++---CHAPTER-12---Dynamic-Memory
  • Table of Contents
  • Overview
Zheng Chu

Zheng Chu

90 posts
20 categories
25 tags
GitHub 简书 CSDN E-Mail
  1. 1. 小结
  2. 2. 使用关联容器
  3. 3. 关联容器概述
© 2021 Zheng Chu
Powered by Hexo v4.2.1
|
Theme – NexT.Pisces v7.3.0
|