set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值;
常见操作:
1.元素插入:insert();
2.元素查找:find();
3.元素删除:erase();
下面是一个简单的二叉搜索树
#include<iostream>
#include<stdio.h>
#include<set>
using namespace std;
int main()
{
//声明
set<int> s;
//插入元素
s.insert(1);
s.insert(2);
s.insert(3);
//查找元素
set<int>::iterator ite;
ite=s.find(1);
if(ite==s.end()) puts("not found");
else puts("found");
ite=s.find(2);
if(ite==s.end()) puts("not found");
else puts("found");
//删除元素
s.erase(3);
if(s.count(3)!=0) puts("found");
else puts("not found");
for(ite=s.begin();ite!=s.end();++ite)
printf("%d\n",*ite);
return 0;
}
set的简单排序:
#include<iostream>
#include<set>
#include<stdio.h>
using namespace std;
int main()
{
int a[]={7,2,3,1,3,4,5,6,8,9};
set<int> s(a,a+10);
set<int>::iterator ite;
//自动排序去掉重复的
for(ite=s.begin();ite!=s.end();ite++)
printf("%d ",*ite);
printf("\n");
}