STL之关联式容器set、map

关联式容器

1.管理元素集合的STL容器大致分为两类,序列式容器(有顺序的集合)和关联式容器(经过排序的集合)。

2.关联式容器再管理数据的过程中会自动给元素排序。其优点在于可以随时采用二分搜索法,搜索元素的效率极高。

set

1.set是根据元素值进行排序的集合,所插入的元素在集合中唯一,不存在重复元素。

1.  #include<set>       用来将STL的set包含到程序中
2.  set<int> S;         一个声明。
3.  成员函数:
        size()          返回set中的元素数
        clear()         清空set
        begin()         返回指向set开头的迭代器
        end()           返回指向set末尾的迭代器
        insert(key)     向set中插入元素key
        erase(key)      删除含有key的元素
        find(key)       搜索与key一致的元素,并返回指向该元素的迭代器。
                        若没有key一致的元素,则返回末尾end()

3.set由二叉搜索树实现,而且对树进行了平衡处理,使得元素在树中分布比较均匀,因此能保持搜索、插入、删除操作的复杂度在O(logn)。

map

1.map集合以键与值的组合为元素,每个元素拥有一个键和一个值,集合以键作为排序标准。

2.集合中各元素的键唯一,不存在重复。

3.map可以看作是一种能使用任意类型下标的关联式容器。

1.  #include<map>   用来将STL的map包含到程序中
2.  map<string, int> T;     一个声明,用于生成关联数组,该关联数组管理以string为键的int型元素。
3.  map容器可以在"[ ]"运算符中指定键来访问(读写)对应值,也可以通过迭代器顺次访问每一对键和值。
    pair为STL提供的结构体模板,其第一个元素可用first访问,第二个元素可以用second访问。
4.  成员函数:
        size()          返回map中的元素数
        clear()         清空map
        begin()         返回指向map开头的迭代器
        end()           返回指向map末尾的迭代器
        insert((key, val))      向map中插入元素
        erase(key)      删除含有key的元素
        find(key)       搜索与key一致的元素,并返回指向该元素的迭代器
                        没有与key一致的元素,则返回末尾end()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值