复制代码
如同所有的STL容器一样,std::set的基本的使用是如此简单,即使使用看起来很高级的功能也并不难,STL是经过设计的调试可用的库。
1
2
3#include<set> //定义一个整型数据的集合 std::set<int> set;
下面我会展示一些简单的使用示例,这些是示例非常简单,首先介绍那个“排序”的用法:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15include<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自身的多数的特性:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20#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:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#include <iostream> #include <set> #include <signal.h> using namespace std; int main(void) { std::set<int> _signals; _signals.insert(SIGTERM); _signals.insert(SIGINT); _signals.insert(SIGCHLD); for( std::set<int>::const_iterator i = _signals.begin(); i != _signals.end(); ++i) cout << *i << endl; _signals.clear(); return 0; }
最后
以上就是怕孤独百合最近收集整理的关于16.c++-std::Set(有序集合)的全部内容,更多相关16内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复