學習總結 STL排序

2021-10-21 20:15:58 字數 1302 閱讀 4923

我們在編寫程式的過程中,不可避免的要對資料進行排序,通過以下方法,我們能節省大量時間,並提高執行效率。

二、降序:

三、逆序

標頭檔案:algorithm;

定義:sort(begin,end);

如:int a[5];

sort(a,a+5);//預設公升序排列;

標頭檔案:set;

定義:setset_name;

如:seta;//預設公升序排列;

操作:存:s.insert();放入元素;

取:s.find();找出指定元素的位置;

用法與set大體相同,區別在於set不包含相同元素,而multiset可以;/預設公升序排列/

也可以利用最大值優先佇列(priority_queue)+棧(stack)或最小值優先佇列(priority_queue)逐個數出等方法來實現公升序:

關於優先佇列:

priority_queue:

標頭檔案:queue;

最大值:

定義:priority_queuepriority_queue_name;

如:priority_queuea;//預設最大資料在最前面,不一定為降序;

最小值:

1)priority_queue,greater>priority_queue_name;

如:priority_queuea;

2)利用過載運算函式實現;

操作:存:q.push();放入元素;

取:q.front();取首位數;

q.back();取末尾數;

通過運算子過載來實現降序

過載運算子:

operator:分為類內函式和友元函式,區別在於友元函式在類外,需要在前面加上關鍵字friend;

定義:data_type operator 運算子(data_type &name)

如:bool operator<(int &b)

同理,通過運算子過載實現降序。

也可以利用或最小值優先佇列(priority_queue)+棧(stack)或最大值優先佇列(priority_queue)逐個數出等方法來實現降序。

棧(stack)

標頭檔案:stack;

定義:stackstack_name;

如:stacka;//後進先出;

操作:存:s.push();放入元素;

取:s.top();取出棧頂元素;

佇列(queue):

標頭檔案:queue;

定義:queuequeue_name;

如:queuea;//先進先出;

操作同優先佇列;

STL學習總結

歷時一月左右,基本看完了c 標準庫的原始碼,忽略了一些用處不那麼大的部分,和一些複雜難以理解的演算法 輸入輸出庫,一些複雜的演算法 stable sort,stable partition,inplace merge,list的排序,紅黑樹的調整等 總體而言,收益還是蠻多的,首先了解了stl容器的用...

STL學習總結

stl standard template library,標準模板庫 是惠普實驗室開發的一系列軟體的統稱。stl從廣義上分為 容器 演算法 迭代器,容器和演算法之間通過迭代器進行無縫連線。stl幾乎所有的 都採用了模板類或者模板函式,這相比傳統的由函式和類組成的庫來說提供了更好的 重用機會 stl...

STL學習總結

一.1 什麼是標準模板庫 stl 1 c 標準模板庫與c 標準庫的關係 c 標準模板庫其實屬於c 標準庫的一部分,c 標準模板庫主要是定義了標準模板的定義與宣告,而這些模板主要都是 類模板,我們可以呼叫這些模板來定義乙個具體的類 與之前的自己手動建立乙個函式模版或者是類模板不一樣,我們使用了 stl...