生成排序
標頭檔案: #include
bool next_permutation(begin, end);
改變區間內元素的順序,產生下乙個排列。
bool prev_permutation(begin, end);
產生前乙個排列。
注意:end為最後乙個元素的下乙個位置。
upper bound和lower bound
upper_bound(begin, end, value);
返回》value的元素的第乙個位置。(位址)
lower_bound(begin, end, value);
返回》=value的元素的第乙個位置。(位址)
num = ;
lower_bound(num, num + 6, 2)為num + 1(num為陣列首位址)
upper_bound(num, num + 6, 2)為num + 3
注意:返回的是位址值;
要輸出返回元素的下標需要輸出(返回值-num的首位址)
例:int *s, *e;
s = lower_bound(a, a + 10, 5);
e = upper_bound(a, a + 10, 5);
coutset 和 multiset會根據特定的排序準則,自動將元素排序,兩者的不同之處在於multiset可以允許元素重複而set不允許元素重複。
關於set,必須說明的是set關聯式容器。 set作為乙個容器也是用來儲存同一資料型別的資料型別,並且能從乙個資料集合中取出資料,在set中每個元素的值都唯一,而且系統能根據元素的值自動進行排序。
用法1.標頭檔案
#include (預設從小到大排序)
2.常用操作
set s 定義乙個set容器 型別為int型
s.begin() 返回指向第乙個元素的迭代器
s.clear() 清除所有元素
s.count() 返回bool型,有返回1,無返回0
s.empty() 如果集合為空,返回true
s.end() 返回指向最後乙個元素之後的迭代器,不是最後乙個元素
s.erase() 刪除集合中的元素
s.find() 返回乙個指向被查詢到元素的迭代器,如果沒找到則返回end()
s.insert() 在集合中插入元素
s.size() 集合中元素的數目
s.swap() 交換兩個集合變數
迭代器1.是乙個「可遍歷stl容器內全部或部分元素」的物件。
2.指出容器中的乙個特定位置。
3.如同乙個指標。
4.提供對乙個容器中的物件的訪問方法,並且可以定義了容器中物件的範圍。
針對set的個人理解:定義指向容器的指標變數
迭代器舉例:
multiset :: iterator pos;
for(pos = s.begin(); pos != s.end(); pos++)
STL的簡單應用1
標準庫string類 include string表示可變長度的字串行 字串是物件 string類支援字串物件的各種操作 各種初始化方式.字串之間的複製 比較 連線.查詢字串長度和判斷字串是否為空.訪問字串中的單個字元.string的簡單使用 include include using namesp...
STL演算法的應用(二)
2.存放臨時資料 在演算法設計有時需要存放一些臨時資料,通常的情況是,如果後存入的元素先處理,可以使用 棧 stack容器 後進先出 如果現先存入的元素先處理,可以使用queue 佇列 容器,如果元素的處理順序按照某個優先順序進行,可以使用priority queue容器。例.設計乙個演算法,判斷乙...
STL順序容器簡單應用
include include includeusing namespace std void main01 演算法和迭代器能無縫連線 int num1 count v1.begin v1.end 3 cout num1 endl 容器裝元素 class teacher void main02 容器...