STL(十一)set集合容器

        set集合容器使用一种称为红黑树的平衡二叉检索树的数据结构,来组织泛化的元素数据,每个节点包含一个取值红色或黑色的颜色域,以利于进行树的平衡处理。作为节点键值的元素的插入,必须确保每个子树根节点的键值大于左子树所有节点的键值,而小于右子树所有节点的键值。不会将重复的键值插入容器,也不需指定具体的插入位置,而按元素在树中的关联关系,进行位置检索和插入,元素的删除亦然。

        元素数据的检索,使用的是二叉检索树的中序遍历算法,检索的效率高于vector、deque和list等容器。由于采用中序遍历算法可将二叉检索树的键值,由小到大排列遍历出来,因此set集合容器蕴含于元素间的有序性。

一、set技术原理

红黑树是一种特殊的二叉检索树,不仅set容器应用红黑树,其他容器如multiset、map和multimap也应用红黑树进行元素的链接。

二、set应用基础

#include <set>

1、元素的插入

2、元素的删除

3、元素的遍历访问

4、元素的反向遍历

5、元素的搜索

#include <set>
#include <iostream>
int main(void) {
    using namespace std;
    set<int>   s;
    s.insert(10);
    s.insert(15);
    s.insert(11);
    s.insert(17);
    s.insert(13);
    s.insert(19);
    //
    int   v = 13;
    set<int>::iterator  i_v = s.find(v);
    cout << *i_v << endl;
    //
    v = 60;
    i_v = s.find(v);
    if (i_v != s.end() )
        cout << *i_v << endl;
    return 0;
} 

6、其他的常用函数






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值