第一次用STL中的set

Posted 5210ly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一次用STL中的set相关的知识,希望对你有一定的参考价值。

给你两个集合,要求{A} + {B}. 
注:同一个集合中不会有两个相同的元素.

Input每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元素之间有一个空格隔开.Output针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开.Sample Input

1 2
1
2 3
1 2
1
1 2

Sample Output

1 2 3
1 2



代码:
#include<stdio.h>
#include<set>
using namespace std;

int main() {
	int i,n,m,j;
	while(~scanf("%d %d",&n,&m)) {
		set<int>s;
			for(i=1;i<=n;i++) {
				scanf("%d",&j);
			s.insert(j);
			}
			for(i=1;i<=m;i++) {
				scanf("%d",&j);
			s.insert(j);
			}
			set<int>::iterator it;
			set<int>::iterator it1;
			it1=s.end();
			it1--;
			for(it=s.begin();it!=it1;it++) {
				printf("%d ",*it);
			}
			printf("%d
",*it);
	}
	return 0;
}

  刚接触STL,也是第一次使用set,代码是在网上借的别人的,set关联式容器,set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。






以上是关于第一次用STL中的set的主要内容,如果未能解决你的问题,请参考以下文章

STL源代码剖析——STL算法之set集合算法

stl-set

STL详解(十三)—— 用一个哈希表同时封装出unordered_map和unordered_set

SPOJ ADAFIELD Ada and Field(STL的使用:set,multiset,map的迭代器)题解

STL容器 -- Set

codeforces #296 div2 (527C) STL中set的运用