set容器的用法

2021-09-23 20:54:09 字數 1770 閱讀 6468

所有元素都會根據元素的鍵值自動排序,set元素的鍵值就是實值,實值就是鍵值。set不允許兩個元素有相同的鍵值。(set的元素不像map那樣可以同時擁有實值(value)和鍵值(key))。

set成員函式列表如下:

begin()–返回指向第乙個元素的迭代器

clear()–清除所有元素

count()–返回某個值元素的個數

empty()–如果集合為空,返回true

end()–返回指向最後乙個元素的迭代器

equal_range()–返回集合中與給定值相等的上下限的兩個迭代器

erase()–刪除集合中的元素

find()–返回乙個指向被查詢到元素的迭代器

get_allocator()–返回集合的分配器

insert()–在集合中插入元素

lower_bound()–返回指向大於(或等於)某值的第乙個元素的迭代器

key_comp()–返回乙個用於元素間值比較的函式

max_size()–返回集合能容納的元素的最大限值

rbegin()–返回指向集合中最後乙個元素的反向迭代器

rend()–返回指向集合中第乙個元素的反向迭代器

size()–集合中元素的數目

swap()–交換兩個集合變數

upper_bound()–返回大於某個值元素的迭代器

value_comp()–返回乙個用於比較元素間的值的函式

#include

#include

#include

using

namespace std;

intmain()

; set<

int>

iset

(arr, arr +7)

; iset.

insert(9

);cout <<

"size:"

<< iset.

size()

<< endl;

cout <<

"3 count = "

<< iset.

count(3

)<< endl;

iset.

erase(1

);set<

int>

::iterator ite1 = iset.

begin()

; set<

int>

::iterator ite2 = iset.

end();

for(

; ite1 != ite2; ite1++

) ite1 = iset.

find(3

);if(ite1 != iset.

end())

cout <<

"number 3 is in array "

<< endl;

ite1 = iset.

find(1

);if(ite1 != iset.

end())

cout <<

"1 not found in array"

<< endl;

system

("pause");

return0;

}

結果:

set容器中初始化兩個數值3,但是是只插入乙個,任意兩個元素之間的鍵值都是不相等的。

set容器的用法

set是一種關聯容器,儲存有序且唯一的鍵值 其大多用法和vector相同就不多加解釋,只闡述它的特殊性 我個人認為set容器的侷限性還是比較大的,僅認為set可以在排序和清除不必要元素時使用,因為set遍歷的時候只可以用迭代器,而且在刪除元素時不方便。刪除鍵值除外 1.標頭檔案 2.新增元素 a.i...

STL容器之set用法

目錄 一 set容器概念 二 set構造和基本函式介面 三 統計和查詢 set是一種關聯式容器,底層是通過平衡二叉樹 紅黑樹 實現的,插入 刪除和查詢效率都非常高,所有元素插入容器中,會被預設以公升序的形式進行排序,而且不允許插入已經存在且相同的資料元素。此外還有乙個multiset容器,它的底層實...

set容器的一些用法

set集合容器 實現了紅黑樹的平衡二叉檢索樹的資料結構,插入元素時,它會自動調整二叉樹的排列,把元素放到適當的位置,以保證每個子樹根節點鍵值大於左子樹所有節點的鍵值,小於右子樹所有節點的鍵值 另外,還得保證根節點左子樹的高度與右子樹高度相等。平衡二叉檢索樹使用中序遍歷演算法,檢索效率高於vector...