STL的簡單應用二

2021-09-11 18:53:24 字數 1459 閱讀 2238

生成排序

標頭檔案: #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 容器...