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) |
新聞熱點
疑難解答
圖片精選