Bootstrap

C++: map和set的使用

目录

1.头文件

2.set和multiset的区别

3.set和map的区别

4.加了multi的区别


这里只说几个要点。

1.头文件

#include <map>
#include <set>

2.set和multiset的区别

set和multiset的区别
setmultiset
只能插入不重复的key可以插入重复的key
一串包含重复的string插入之后,自动去重

树上允许存储相同的值 

用erase删除查找的指定key,只删确定的这个删除所有值相同的key

共同点:

  • 不支持插入有序对
  • 不支持随机访问
  • 都是关联式容器
  • 底层是搜索二叉树(红黑树)

3.set和map的区别

set和map的区别
setmap
只能存一个key值,插入返回值是迭代器和bool值可以存一对有序对,插入的类型是pair,pair是一个类,包含两个成员,(一般把第一个叫key,第二个叫value)都是模板。支持无参构造,支持两个类模板的构造,支持const的构造。
不支持[]运算符重载支持[]运算符重载,可以通过[]查找指定的key
不能修改key不能修改key,可以修改value
不允许重复不允许key重复,但value可以重复

共同点:

  • 都是关联式容器。

4.加了multi的区别

multiset和mutimap相比set和map的区别在于,允许key重复。

map和set的使用必须要在写代码中熟练。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;