set内部其实是一颗二叉搜索树。其基本函数如下:
size():返回set的集合数。
clear():清空set。 O(n)
begin():返回指向set开头的迭代器。
end():返回指向set末尾的迭代器。
insert(key):向set中插入元素key。O(log(n))
erase(key):删除含有key的元素。 O(log(n))
find(key): 查找与key一致的元素,并返回指向该元素的迭代器,如果没有找到,则返回末尾end()。O(log(n))
set对于重复元素只能存储一次。。。
代码如下:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <set>
using namespace std;
set<int>se;
int a[]={5,2,3,6,5};
void print()
{
//集合的遍历
for (set<int>::iterator it=se.begin();it!=se.end();it++)
printf(" %d",*it);
printf("\n");
}
int main()
{
if(se.size()==0)
printf("集合为空\n");
//插入元素
for (int i=0;i<5;i++)
se.insert(a[i]);
print();
//删除元素
se.erase(5);
print();
//查找元素
if(se.find(5)==se.end())
printf("集合中未存在此元素\n");
return 0;
}
/*
运行结果
集合为空
2 3 5 6
2 3 6
集合中未存在此元素*/