set是根据元素值进行排序的集合,所插入的元素在集合中唯一,不存在重复元素。
set由二叉搜索树实现,并且对树进行了平衡处理,使得元素在树中分部较为均匀,因此能保持搜索、插入、删除的复杂度在O(logn)。
函数名 | 功能 | 复杂度 |
size() | 返回set中的元素数 | O(1) |
clear() | 清空set | O(n) |
begin() | 返回指向set开头的迭代器 | O(1) |
end() | 返回指向set末尾的迭代器 | O(1) |
insert(key) | 向set中插入元素key | O(logn) |
erase(key) | 删除含有key的元素 | O(logn) |
find(key) | 搜索与key一致的元素,并返回指向该元素的迭代器。没有与key一致的元素,则返回末尾end() | O(logn) |
实例代码:
#include<iostream>#include<map>#include<string>using namespace std;void PRint(map<string,int> T){ map<string,int>::iterator it; cout<<T.size()<<endl; for(it=T.begin();it!=T.end();it++){ pair<string,int> item=*it; cout<<item.first<<"-->"<<item.second<<endl; }}int main(){ map<string,int> T; T["red"]=32; T["blue"]=688; T["yellow"]=122; T["blue"]+=312; print(T); T.insert(make_pair("zebra", 101010)); T.insert(make_pair("white", 0)); print(T); pair<string, int> target = *T.find("red"); cout<<target.first<<"-->"<<target.second<<endl; return 0;} 运行结果:
函数名 | 功能 | 复杂度 | |
size() | 返回map中的元素数 | O(1) | |
clear() | 清空map | O(n) | |
begin() | 返回指向map开头的迭代器 | O(1) | |
end() | 返回指向map末尾的迭代器 | O(1) | |
insert(key,val) | 向map中插入元素(key,val) | O(logn) | |
erase(key) | 删除含有key的元素 | O(logn) | |
find(key) | 搜索与key一致的元素,并返回指向该元素的迭代器。没有与key一致的元素,则返回末尾的end() | O(logn) |
新闻热点
疑难解答
图片精选