//---------------------------------------------------------
// set綜述
//---------------------------------------------------------
1.set數據結構的實現:紅黑樹(平衡二叉樹的一種)
2.在往set中插入元素時,會自動進行排序
3.set在搜尋元素時具備良好的性能,其搜尋函數算法具備對數複雜度
[在擁有1000個元素的set中搜尋元素,二叉樹搜尋動做(由成員函數執行)的平均時間爲線性搜尋時間的1/50]
4.自動排序形成set的一個重要限制:你不能直接改變元素值,由於這樣會打亂本來正確的順序,
所以,要改變元素值,必須先刪除舊元素,再插入新元素
5.set不容許元素重複,multiset容許元素重複
//---------------------------------------------------------
//
//---------------------------------------------------------
// A
set<int> setTest;
setTest.insert(3);
setTest.insert(1);
setTest.insert(2);
setTest.insert(100);
插入元素時會自動進行排序算法
// B
set<int>::iterator iter = setTest.find(2);
if (setTest.end() != iter)
{
*iter = 1000;
}
雖然能夠這樣直接改變元素的值,但這樣會打亂本來正確的順序
因此,
iter = setTest.find(100)
會發現 iter == setTest.end()
即沒有找到值爲100的元素,實際上set中是有這個元素的。
形成這一結果的緣由就在於打亂了set中本來正確的順序。數據結構