学习笔记 c++ (多重集合和多重映射 )

多重集合(multiset)与多重映射(multimap)

  • 多重集合是允许有重复元素的集合,多重映射是允许一个键对应多个附加数据的映射。
  • 多重集合与集合、多重映射与映射的用法差不多,只在几个成员函数上有细微差异,其差异主要表现在去除了键必须唯一的限制。

例 上课时间查询

//multimap.cpp
#include 
#include 
#include 
#include 
using namespace std;
int main() {
    multimap courses;
    typedef multimap::iterator CourseIter;

    //将课程上课时间插入courses映射中
    courses.insert(make_pair("C++", "2-6"));
    courses.insert(make_pair("COMPILER", "3-1"));
    courses.insert(make_pair("COMPILER", "5-2"));
    courses.insert(make_pair("OS", "1-2"));
    courses.insert(make_pair("OS", "4-1"));
    courses.insert(make_pair("OS", "5-5"));
    //输入一个课程名,直到找到该课程为止,记下每周上课次数
    string name;
    int count;
    do {
        cin >> name;
        count = courses.count(name);
        if (count == 0)
          cout << "Cannot find this course!" << endl;
    } while (count == 0);
    //输出每周上课次数和上课时间
    cout << count << " lesson(s) per week: ";
    pair range = courses.equal_range(name);
    for (CourseIter iter = range.first; iter != range.second; ++iter)
        cout << iter->second << " ";
    cout << endl;

    return 0;
}
运行结果如下:
JAVA
Cannot find this course!
OS
3 lesson(s) per week: 1-2 4-1 5-5

学习笔记 c++ (多重集合和多重映射 )_第1张图片 

 学习笔记 c++ (多重集合和多重映射 )_第2张图片

 学习笔记 c++ (多重集合和多重映射 )_第3张图片

 学习视频链接:http://www.xuetangx.com/courses/course-v1:TsinghuaX+00740043_2x_2015_T2+sp/courseware/9a3aa181297f4bf18ff20cbe33c66856/bae5330496c84552980f464fcfd1417e/

 

你可能感兴趣的:(c++学习)