std::set作为一个有序集合

摘要:std::set作为标准库的一个关联容器,实现内部元素进行了排序,使用这特性可以对一组元素进行插入排序。std::set最初的设计是完成数学中“集合”的概念,它提供的接口也是如此。本文简单地介绍一下这一个标准库容器。

为了使用std::set,我只需要如下:


#include<set>
//定义一个整型数据的集合
std :: set < int > set ;
如同所有的STL容器一样,std::set的基本的使用是如此简单,即使使用看起来很高级的功能也并不难,STL是经过设计的调试可用的库。

下面我会展示一些简单的使用示例,这些是示例非常简单,首先介绍那个“排序”的用法:



#include<set>
int array [5 ] = {12, 34, 10, 98, 3 } ;
const  size_t array_size = sizeof (array ) / sizeof (array [0 ] ) ;
std :: set < int > set ;
for ( size_t i = 0 ; i <array_size ;  ++i )
{
        //把数据插入集合,数据自动排序
        set. insert (array [i ] ) ;
}

//此时已经排序了,下面依次输出
std :: set < int > :: const_iterator b =set. begin ( ) ;
for ( ; b ! =set. end ( ) ;  ++b )
{
        std :: cout  <<  *<<  '\n' ;
}

在一般意识中,一个集合并没有太多的操作,所有在STL中,std::set也没有太多操作,它的排序是自动的,我们可以插入一个元素,也可以删除一个元素,也有迭代器。下面简单的示例包括std::set自身的多数的特性:



#include<set>
int array [5 ] = {12, 34, 10, 98, 3 } ;
const  size_t array_size = sizeof (array ) / sizeof (array [0 ] ) ;
//一个新的定义容器的方法
std :: set < int > set (array, array +array_size ) ;

//插入一个元素
set. insert (23 ) ;
//移除一个元素
set. erase (10 ) ;
//移除一个元素不在集合中的元素
//此时什么也不做,n作为返回值将会是0
//指明没有元素移除
size_t n =set. erase (11 ) ;

//使用迭代器,找到一个元素
std :: set < int > :: const_iterator result =set. find (98 ) ;

std :: set < int > other ;
//交换两个集合的内容
std :: swap (set, other ) ;

//清楚所有的内容
other. clear ( ) ;

std::set很简单,正如多数STL工具一样,但是却可以给我们许多新的感觉。祝大家学习愉快!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值