介绍:
set是根据元素的值进行排序的集合,所插入的元素在集合中唯一。通过迭代器访问容器中元素。
复杂度:
set是c++标准库提供的一种关联式容器,set的内部由二叉搜索树实现,并且对树进行了平衡处理,使得元素在树中分布较为均匀。因此set的搜索、插入、删除复杂度都是 O(logn)
set的成员函数
函数名 | 功能 | 复杂度 |
size( ) | 返回set中的元素个数 | O(1) |
clear( ) | 清空set | O(n) |
begin( ) | 返回指向set开头的迭代器 | O(1) |
end( ) | 返回指向set末尾的迭代器 | O(1) |
insert( ) | 向set中插入元素key | O(logn) |
erase( ) | 删除含有key的元素 | O(logn) |
find( ) | 搜索与key一致的元素,并且返回指向该元素的迭代器 没有与key一致的元素,则返回末尾end() |
O(logn) |
用法:
使用set 要加#include<set>头文件
#include<iostream>
#include<set>
using namespace std;
void Print(set<int> s){
cout<<s.size()<<":";
for(set<int>::iterator it=s.begin();it!=s.end();it++){
cout<<" "<<(*it);
}
cout<<endl;
}
int main(){
set<int> s;
s.insert(8);
s.insert(1);
s.insert(7);
s.insert(4);
s.insert(8);
s.insert(4);
Print(s);// 4:1 4 7 8
s.erase(7);
Print(s);// 3:1 4 8
s.insert(2);
Print(s);// 4:1 2 4 8
if(s.find(10)==s.end()){
cout<<"not find."<<endl;
}
return 0;
}