我們在編寫程式的過程中,不可避免的要對資料進行排序,通過以下方法,我們能節省大量時間,並提高執行效率。
二、降序:
三、逆序
標頭檔案: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...