C++基础(14)——STL(set、pair、map)

前言

本文主要介绍C++中STL中的set、pair和map容器

7.8:set、multiset容器

7.8.1:set容器基本概念、构造函数和赋值(=、insert)

set容器中所有元素都会在插入的时候自动排序

set和multiset的区别

set不允许有重复的元素;multiset允许容器中有重复的元素

set的迭代器也是不支持随机访问的,只能双向++或--

C++基础(14)——STL(set、pair、map)_第1张图片

7.8.2:set的大小和交换操作(size、empty、swap)

C++基础(14)——STL(set、pair、map)_第2张图片

7.8.3:set的插入和删除(insert、erase)

C++基础(14)——STL(set、pair、map)_第3张图片

7.8.4:set查找和统计(find、count)

C++基础(14)——STL(set、pair、map)_第4张图片

7.8.5:set和multiset的区别

set中不存在相同的值,multiset中可以存在相同的值

C++基础(14)——STL(set、pair、map)_第5张图片

set使用insert之后会返回一个pair,multiset使用insert之后会返回一个iterator

C++基础(14)——STL(set、pair、map)_第6张图片

set下的insert原型

C++基础(14)——STL(set、pair、map)_第7张图片

multiset下的insert原型

C++基础(14)——STL(set、pair、map)_第8张图片

7.8.6:pair对组创建(有参构造、make_pair)

成对出现的数据,利用对组可以返回两个数据,使用.first和.second来返回第一参数和第二参数的值

C++基础(14)——STL(set、pair、map)_第9张图片

7.8.7:使用仿函数对set进行排序,改变默认容器sort的排序规则

set实现倒序输出

C++基础(14)——STL(set、pair、map)_第10张图片

如果要对自定义数据类型实现倒序输出,对自定义的数据用集合容器装入的话,要自己确定排序规则,重写仿函数

C++基础(14)——STL(set、pair、map)_第11张图片

没有办法在Person类中直接重写operator(),要重新写一个类,然后重写这个类的operator(),参数就是Person的对象

7.9:map/multimap容器

7.9.1:map的基本概念

1:map中的所有元素都是pair

2:pair中第一个元素为key(键值),第二个元素是value(实值)

3:所有元素都会根据元素的键值自动排序

4:map中不允许有重复的key值出现,multimap允许容器中有重复的key出现

基本构造函数

C++基础(14)——STL(set、pair、map)_第12张图片

7.9.2:map容器的大小和交换(size、swap、empty)

C++基础(14)——STL(set、pair、map)_第13张图片

7.9.3:map容器中元素的插入和删除(insert、erase、clear)

C++基础(14)——STL(set、pair、map)_第14张图片

7.9.4:map的查找和统计(find、count)

C++基础(14)——STL(set、pair、map)_第15张图片

7.9.5:map容器使用仿函数改变默认排序

C++基础(14)——STL(set、pair、map)_第16张图片

map容器中装自定义类型数据,使用仿函数改变默认排序方式

C++基础(14)——STL(set、pair、map)_第17张图片

总结

以上就是本文的全部内容,非常感谢你能看到这

你可能感兴趣的:(C++学习,c++,开发语言)