1. 程式人生 > >STL"set"

STL"set"

1, set作為一個關聯式容器,用來儲存同一資料型別的資料型別,並且能從一個數據集合中取出資料,在set中每個元素的值都唯一,而且系統能根據元素的值自動進行排序。set中數元素的值不能直接被改變。 C++ STL中標準關聯容器set, multiset, map, multimap內部採用的就是一種非常高效的平衡檢索二叉樹:紅黑樹,也成為RB樹(Red-Black Tree)。 2, map和set的插入刪除效率比用其他序列容器高 3, 每次insert之後,以前儲存的iterator不會失效 4, set使用方法:

begin() 返回set容器的第一個迭代器

end() 返回set容器的最後一個迭代器

clear() 刪除set容器中的所有的元素

empty() 判斷set容器是否為空

max_size() 返回set容器可能包含的元素最大個數

size() 返回當前set容器中的元素個數

rbegin  返回的值和end()相同

rend()  返回的值和rbegin()相同

erase(iterator) 刪除定位器iterator指向的值

erase(first,second) 刪除first和second之間的值

erase(value) 刪除鍵值value的值

lower_bound(value) 返回第一個>=value的定位器

upper_bound(value)|返回最後一個>=value的定位器

5,

#include<iostream>
#include<set>
using namespace std;
int main(){
    int a[]={3,2,1,5,4};
    set<int> a1(a,a+5);
    set<int>::iterator it;
    for(it = a1.begin();it!=a1.end();it++){ 
             cout << *it << "\t";    }
    cout << endl; 
    return 0;
}