C++——map与set

目录

1.关联式容器

2.键值对

3.树形结构的关联式容器

3.1 set

3.1.1 set的介绍

3.1.2 set的使用

3.2 map

3.2.1 map的介绍

3.2.2 map的使用

3.3 multiset

3.4 multimap


1.关联式容器

C++STL中的容器分为序列式容器和关联式容器。它们的区别就是存储数据的方式不同,序列式容器是按照插入顺序储存数据,而关联式容器里面储存的是<key,value>类型的数据,是比较关键字key进行储存数据的。

2.键值对

键值对是一种一一对应的关系结构,它一般包含两个成员,即key与value,key代表键值,value代表key对应的信息,<key,value>表示key与value的映射关系。

3.树形结构的关联式容器

C++STL中主要有四种关联式容器,分别是set,multiset,map,multimap。它们的共同点是都是以红黑树为底层的树形结构,储存的数据都是有序的。

3.1 set

3.1.1 set的介绍

set是按一定顺序储存数据的容器。

set的特点:

1.set里面没有重复元素,并且元素不可修改,只能插入和删除。

2.set进行插入时只需要插入value即可,不想要构建键值对,但实际的底层还是使用<key,value>,并且key等于value。

3.set里面的元素默认按照小于的顺序排序。

3.1.2 set的使用

1.set的模版参数:

template < class T,                        // set::key_type/value_type
           class Compare = less<T>,        // set::key_compare/value_compare
           class Alloc = allocator<T>      // set::allocator_type
           > class set;

第一个模板参数表示储存数据的类型,第二个模板参数表示储存数据的比较方式(默认小于),第三个模式参数表示set中元素的管理方式,使用STL提供的空间配置器管理。

2.set的构造

3.set 的迭代器

4.set的容量

5.set的修改操作

3.2 map

3.2.1 map的介绍

map是比较键值key来储存数据的关联式容器。

map的特点:

1.map中的key不允许重复。

2.map支持[]访问,下标为键值key。

3.map的key与value通过成员类型value_type绑定起来,起名为pair.

typedef pair<const key,value>value_type;

3.2.2 map的使用

1.map的模板参数

第一个模板参数代表key的类型,第二个模板参数代表value的类型,第三个模板参数代表key比较方式(默认小于),第四个模板参数代表空间配置器。

2.map的构造

map的构造方式与set类似,可以参考set。

3.map的迭代器

4.map的容量与元素访问

如果用[]访问的下标key不存在,这里operator[]会用默认的value与key构造键值对然后插入,返回默认value。

5.map中元素的修改

3.3 multiset

mulitiset与set的区别在于multiset允许储存value相同的元素,其使用方式与set相同。

3.4 multimap

multimap与map的区别在于multimap允许储存key相同的键值对,其使用方式与map相同。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值