天天看點

STL之五:set/multiset用法詳解集合

使用set或multiset之前,必須加入頭檔案<set>

set、multiset都是集合類,差别在與set中不允許有重複元素,multiset中允許有重複元素。

STL之五:set/multiset用法詳解集合

sets和multiset内部以平衡二叉樹實作

STL之五:set/multiset用法詳解集合

set c:建立空集合,不包含任何元素

set c(op):以op為排序準則,産生一個空的set

set c1(c2):複制c2中的元素到c1中

set c(const value_type *first, const value_type* last):複制[first, last)之間元素構成新集合

set c(const value_type *first, const value_type* last,op):以op為排序準則,複制[first, last)之間元素構成新集合。

c.~set()銷毀所有元素,釋放記憶體

multiset mc:建立空集合,不包含任何元素

multiset mc(op):以op為排序準則,産生一個空的set

multiset c1(c2):複制c2中的元素到c1中

multiset c(const value_type *first, const value_type* last):複制[first, last)之間元素構成新集合

multiset c(const value_type *first, const value_type* last,op):以op為排序準則,複制[first, last)之間元素構成新集合。

    int size() const:傳回容器元素個數

    bool empty() const:判斷容器是否為空,若傳回true,表明容器已空

      pair<iterator,bool> insert( x):插入元素x

    iterator insert(iterator it,x):在疊代器it處插入元素x

    void insert(const value_type *first,const value_type *last):插入[first, last)之間元素

    iterator erase(iterator it):删除疊代器指針it處元素

    iterator erase(iterator first,iterator last):删除[first, last)之間元素

    size_type erase(const key& key):删除元素值等于key的元素

     iterator begin():傳回首元素的疊代器指針

    iterator end():傳回尾元素的疊代器指針

    reverse_iterator rbegin():傳回尾元素的逆向疊代器指針

    reverse_iterator rend():傳回首元素前一個位置的疊代器指針

       const_iterator lower_bound(const key& key):傳回容器中大于等于key的疊代器指針

    const_iterator upper_bound(const key& key):傳回容器中大于key的疊代器指針

    int count(const key& key) const:傳回容器中元素等于key的元素的個數

    pair<const_iterator,const_iterator> equal_range(const key& key) const:傳回容器中元素值等于key的疊代指針[first, last)

    const_iterator find(const key& key) const:查找功能,傳回元素值等于key的疊代器指針

    void swap(set& s):交換集合元素

    void swap(multiset& s):交換多集合元素  

繼續閱讀