您的位置:首页 > 其它

std::set

2014-02-25 10:53 169 查看
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 << *b << '\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();

eg:
#include <iostream>

#include <set>

#include <signal.h>
using namespace std;
int main(void)

{

std::set<int> _signals;

_signals.insert(SIGTERM);

_signa
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: