set

set(集合)

方便快速找尋資料是否已經存在,不允許資料重複,在插入資料到set時,會檢查是否已經有相同資料存在集合內,若資料相同則不會進行插入該元素,會回傳相同資料在set所在位置的迭代器(iterator)。插入資料時,set會將資料插入到set所指定的位置,以二元搜尋樹(binary search tree)實作set,讓set呈現已排序狀態,讓搜尋、插入與刪除資料有較好的效率。

set所提供的重要函式

set程式範例--在set中新增與讀取元素

範例說明

請實作一個程式將數字1到9由依序加入set中,使用find找出數字4所在位置的迭代器(iterator),並使用erase刪除數字4,並使用迴圈、迭代器(iterator)與遞增運算子(++),顯示set中所有元素到螢幕。

範例程式如下

set預設是遞增排序,若要改成遞減排序,需要在宣告時就告知是遞減排序,使用函式物件(function object)的「greater<資料型別>」,第一個元素是否大於第二個元素,宣告成「set<資料型別,greater<資料型別> >」,就會變成由大到小排序,注意最後兩個大於中間要插入一個空白鍵,與輸入時所使用的「>>」能夠區分開來。

將set改成遞減排序

範例說明

請實作一個程式將數字1到9由依序加入set中,使用遞減排序,並使用迴圈、迭代器(iterator)與遞增運算子(++),顯示set中所有元素到螢幕。

範例程式如下