STL 中簡單的set總結

2021-07-25 07:37:19 字數 2013 閱讀 1476

1、set會根據特定的排序準則自動將元素排序,set中元素不允許重複,search操作效率會很高o(log n)

2、關於set,必須說明的是set關聯式容器。set作為乙個容器也是用來儲存同一資料型別的資料型別,並且能從乙個資料集合中取出

資料,在set中每個元素的值都唯一

,不會重複新增,

而且系統能根據元素的值

自動進行排序

。應該注意的是set中數元素的值不能直接被改變。c++

stl中標準關聯容器set, multiset, map, multimap內部採用的就是一種非常高效的平衡檢索二叉樹:紅黑樹,也成為rb樹

(red-black tree)。rb樹的統計效能要好於一般平衡二叉樹,所以被stl選擇作為了關聯容器的內部結構。

因為是排序的,所以set中的元素不能被修改,只能刪除後再新增。

3、 set中常用的方法

c++ stl容器set成員函式:begin()--返回指向第乙個元素的迭代器

c++ stl容器set成員函式:clear()--清除所有元素

c++ stl容器set成員函式:count()--用來查詢set中某個某個鍵值出現的次數。這個函式在set並不是很實用,因為乙個鍵值在set只可能出現

0或1次,

這樣就變成了判斷某一鍵值是否在set出現過了。

c++ stl容器set成員函式:empty()--如果集合為空,返回true

c++ stl容器set成員函式:end()--返回指向最後乙個元素的迭代器

c++ stl容器set成員函式:equal_range()--返回集合中與給定值相等的上下限的兩個迭代器

c++ stl容器set成員函式:erase()--刪除集合中的元素

c++ stl容器set成員函式:find()--返回乙個指向被查詢到元素的迭代器

c++ stl容器set成員函式:get_allocator()--返回集合的分配器

c++ stl容器set成員函式:insert()--在集合中插入元素

c++ stl容器set成員函式:lower_bound()--返回指向大於(或等於)某值的第乙個元素的迭代器

c++ stl容器set成員函式:key_comp()--返回乙個用於元素間值比較的函式

c++ stl容器set成員函式:max_size()--返回集合能容納的元素的最大限值

c++ stl容器set成員函式:rbegin()--返回指向集合中最後乙個元素的反向迭代器

c++ stl容器set成員函式:rend()--返回指向集合中第乙個元素的反向迭代器

c++ stl容器set成員函式:size()--集合中元素的數目

c++ stl容器set成員函式:swap()--交換兩個集合變數

c++ stl容器set成員函式:upper_bound()--返回大於某個值元素的迭代器

c++ stl容器set成員函式:value_comp()--返回乙個用於比較元素間的值的函式

c++ stl集合set插入,遍歷用法舉例

#include#includeusing namespace std;

//set插入元素操作

int main()

{ //定義乙個int型集合物件s,當前沒有任何元素

sets;

s.insert(8); //第一次插入8,可以插入

s.insert(1);

s.insert(12);

s.insert(6);

s.insert(8); //第二次插入8,重複元素,不會插入

set::iterator it; //定義前向迭代器

//中序遍歷集合中的所有元素

for(it=s.begin();it!=s.end();it++)

cout<<*it<

STL中set的使用

include include include include include include using namespace std int main double set doubleset a,a size ostream iteratoroutput cout,cout 1 copy dou...

STL 中set的用法

set set2 set1 建立set1的副本set2,set2與set1必須有相同的鍵型別和值型別 set set3 b,e 建立set型別的物件set3,儲存迭代器b和e標記的範圍內所有元素的副本。元素的型別必須能轉換為k型別 lower bound 返回指向大於或等於某值的第乙個元素的迭代器 ...

STL中的SET認知

1.關於set c stl 之所以得到廣泛的讚譽,也被很多人使用,不只是提供了像vector,string,list等方便的容器,更重要的是stl封裝了許多複雜的資料結構演算法和大量常用資料結構操作。vector封裝陣列,list封裝了鍊錶,map和set封裝了二叉樹等,在封裝這些資料結構的時候,s...