set模板類在標頭檔案 中使用前需要先引入標頭檔案。
set集合容器實現了紅黑樹(red-black tree)的平衡二叉檢索樹的資料結構,在插入元素時,它會自動調整二叉樹的排列,把該元素放到適當的位置,以確保每個樹根節點的鍵值大於左子樹所有節點的鍵值,而小於右子樹所有節點的鍵值;另外,還確保根節點左子樹的高度與右子樹的高度相等,這樣,二叉樹的高度最小,從而檢索速度最快。要注意的是,它不會重複插入相同鍵值的元素,而採取忽略處理。
s.begin() // 返回指向第乙個元素的迭代器
s.clear() // 清除所有元素
s.count() // 返回某個值元素的個數
s.empty() // 如果集合為空,返回true(真)
s.end() // 返回指向最後乙個元素之後的迭代器,不是最後乙個元素
s.equal_range() // 返回集合中與給定值相等的上下限的兩個迭代器
s.erase() // 刪除集合中的元素
s.find() // 返回乙個指向被查詢到元素的迭代器
s.get_allocator() // 返回集合的分配器
s.insert() // 在集合中插入元素
s.lower_bound() // 返回指向大於(或等於)某值的第乙個元素的迭代器
s.key_comp() // 返回乙個用於元素間值比較的函式
s.max_size() // 返回集合能容納的元素的最大限值
s.rbegin() // 返回指向集合中最後乙個元素的反向迭代器
s.rend() // 返回指向集合中第乙個元素的反向迭代器
s.size() // 集合中元素的數目
s.swap() // 交換兩個集合變數
s.upper_bound() // 返回大於某個值元素的迭代器
s.value_comp() // 返回乙個用於比較元素間的值的函式
set容器名稱
例如:1. 未初始化大小
sets;
2. 初始化大小
sets(n);
sets; s.resize(n); // n 表示所申請的大小
有兩種方法#include #include using namespace std;
sets;
int main()
使用auto關鍵字獲取迭代器
建立set::iterator it;
輸出結果#include #include #include using namespace std;
sets;
int main()
cout << endl;
// 第二種方式
set::iterator it;
for(it = s.begin() ; it != s.end() ; it++)
return 0;
}
查詢元素的方法和返回型別經常會用到需要熟記!0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
find() 方法查詢指定的元素並返回,查詢值的迭代器。
如果沒有找到則會返回end()!!
erase()方法刪除集合中的指定元素#include #include #include using namespace std;
sets;
int main()
cout << endl;
// 第二種方式
set::iterator it;
for(it = s.begin() ; it != s.end() ; it++)
if(s.find(5) != s.end())
return 0;
}
#include #include #include using namespace std;
sets;
int main()
cout << endl;
// 第二種方式
set::iterator it;
for(it = s.begin() ; it != s.end() ; it++)
if(s.find(5) != s.end())
s.erase(5);
for(auto it = s.begin() ; it != s.end() ;it ++)
return 0;
}
C STL中的容器 Set
set跟vector差不多,它跟vector的唯一區別就是,set裡面的元素是有序的且唯一的,只要你往set裡新增元素,它就會自動排序,而且,如果你新增的元素set裡面本來就存在,那麼這次新增操作就不執行。要想用set先加個頭檔案set。其中數值型按照從小到大排列 字元型按照字典序排列 includ...
C STL中set和multiset的使用方法
構造 set集合主要目的是為了快速檢索,不可直接去修改鍵值。需要引用標頭檔案 include template classcompare less,classalloc stl default allocator key 比較函式物件及記憶體分配器採用的是預設引數,因此如果未指定,它們將採用系統預設...
C STL庫中set的常見操作
include include using namespace std set int s 注意 有序性。set容器中的元素預設公升序排序 重複性。set容器中沒有重複的元素。1.迭代器 s.begin 返回指向容器頭部的迭代器 s.end 返回指向容器尾部的迭代器 s.rbegin 等價於s.en...