目录
3.8 set/multiset 容器
3.8.1 set基本概念
本质:
set/mulitiset 属于关联式容器,底层结构是用二叉树实现。
set和multiset区别:
set不允许容器中有重复的元素。
multiset允许容器中有重复的元素。
3.8.2 set构造和赋值
#include <iostream>
#include <set>
using namespace std;
void printSet(set<int> s)
{
for(set<int>::iterator it = s.begin(); it != s.end(); it++)
{
cout << (*it) << " " << endl;
}
}
void test01()
{
set<int> s1;
s1.insert(30);
s1.insert(10);
s1.insert(20);
s1.insert(40);
s1.insert(20);
//set容器特点
//1.所有元素插入的时候会自动被排序
//2.set容器不允许插入重复值
printSet(s1);
//拷贝构造
set<int>s2(s1);
printSet(s2);
//赋值
set<int>s3;
s3 = s2;
printSet(s3);
}
int main()
{
test01();
system("pause");
return 0;
}
3.8.3 set大小和交换
函数原型:
size(); //返回容器中元素的数目
empty(); //判断容器是否为空
swap(st); //交换两个集合容器
3.8.4 set插入和删除
函数原型:
insert(elem); //在容器中插入元素
clear(); //清除所有元素
erase(pos); //删除pos迭代器所指的元素,返回下一个元素的迭代器
erase(beg,end); //删除区间内的所有元素,返回下一个元素的迭代器
erase(elem); //删除容器中值为elem的元素