1、set基本概念
简介:所以元素在插入时被自动排序
本质:set、multiset属于关联式容器,底层结构用的是二叉树实现
set和multiset区别:
- set不允许容器中有重复的元素
- multiset允许容器中有重复元素
2、set构造与赋值
函数原型:
- set<T> st;默认构造函数
- set(const set &st);拷贝构造函数
- set& operator=(const set &st);重载等号操作符
#include <iostream>
#include <string>
#include <vector>
#include <ctime>
#include <cmath>
#include<fstream>
#include<algorithm>//标准算法头文件
#include<deque>
#include<stack>
#include<list>
#include<set>
using namespace std;
void printset(set<int> &st)
{
for (set<int>::iterator sit = st.begin(); sit != st.end(); sit++)
{
cout << *sit << " ";
}
cout << endl;
}
void test01()
{
set<int> s;
s.insert(10);
s.insert(500);
s.insert(30);
s.insert(40);
s.insert(30);
printset(s);//10 30 40 500
set<int> s2;
s2 = s;
printset(s2);//10 30 40 500
set<int> s3(s);
printset(s3);//10 30 40 500
}
int main()
{
test01();
system("pause");
return 0;
}
3、set大小和交换
函数原型:
- size();返回容器中元素的数目
- empty();判断容器是否为空
- swap(st);交换两个集合容器
#include <iostream>
#include <string>
#include <vector>
#include <ctime>
#include <cmath>
#include<fstream>
#include<algorithm>//标准算法头文件
#include<deque>
#include<stack>
#include<list>
#include<set>
using namespace std;
void printset(set<int> &st)
{
for (set<int>::iterator sit = st.begin(); sit != st.end(); sit++)
{
cout << *sit << " ";
}
cout << endl;
}