STL提供4种关联容器:set、multiset、map、multimap。关联容器将值和键关联在一起,通过键来查找值。这4种容器都是可反转的经过排序的关联容器,不可以指定插入位置,因为需要保持有序性,可提供对元素的快速访问,内部采用红黑树实现。
set是有序集合,键和值是统一的,值就是键,set每个键都是唯一的,不允许重复;使用时需要引入头文件#include
set的迭代器为双向访问,不支持随机访问。执行一次++和–操作的时间复杂度均为 O ( l o g n ) O(logn) O(logn)。默认的元素顺序为升序,也可以通过第2个模板的参数设置为降序。
set
size/empty/clear:元素个数、判空、清空。begin/end:开始位置和结束位置。insert(x):将元素x插入合集。erase(x):删除所有等于x的元素。erase(it):删除it迭代器指向的元素。find(x):查找元素x在集合中的位置,若不存在,则返回end。count(x):统计等于x的元素个数。
-lower_bound/upper_bound:返回大于等于x的最小元素位置、大于x的最小元素位置。 题目描述
给定两个集合 A A A、 B B B,求 A + B A+B A+B(在同一个集合中不会有两个相同的元素)。
输入:每组输入数据均分为三行。第1行包含两个整数n和m(0 < n,m leq 10000),分别表示集合A和集合B中的元素个数;后两行分别表示集合A和集合B中的元素,元素之间以一个空格隔开。
输出:单行输出合并后的集合,要求从小到大输出,元素间以一个空格隔开。
#include
输入:
1 212 31 211 2
输出:
1 2 31 2