sort()函式
sort()函式主要用於普通排序,速度較高(較高???),初學者適用。
sort函式簡單來講有兩種用法,一是大到小,二是小到大。sort(a,a+n)代表將陣列a的n個數(a[0]~a[n-1])進行預設的從小到大的排序。例子:
#include
using
namespace std;
const
int n=10;
int a[11]
=;intmain()
printf
("\n");
return0;
}
輸出結果:1 2 3 4 5 6 7 8 9 10
這是普通用法。那從大到小呢?沒錯,可以自定義一種排序方式,名字為cmp。
bool
cmp(
int x,
int y)
//bool函式
然後我們要想方設法把它塞進sort()裡面。
sort
(a+1
,a+n+
1,cmp/*奇特的塞了進去*/
);
什麼?怎麼又多了乙個東西?沒錯,這種方法可以讓sort()函式用我們設定的排序方式來為陣列排序。例子:
#include
using
namespace std;
const
int n=10;
int a[11]
=;bool
cmp(
int x,
int y)
intmain()
printf
("\n");
return0;
}
輸出結果:10 9 8 7 6 5 4 3 2 1
我們設有n個人,每個人有語文、數學、英語三個科目的考試成績,讓你將他們的總分從大到小排序,然後從大到小輸出總分。
我們設定乙個結構體node來表示他們三科分數和總成績
struct node
a[105]=
;
然後,我們要設定我們排序方式,因為如果不設定,sort()函式可能看不懂你這個結構體要幹什麼emm。我們定義乙個cmp,注意變數用node,不要用int
bool
cmp(node x,node y)
然後,我們程式設計序就方便多了。程式如下:
#include
using
namespace std;
int n;
struct node
a[105]=
;bool
cmp(node x,node y)
intmain()
sort
(a+1
,a+n+
1,cmp)
;for
(int i=
1;i<=n;i++
)return0;
}
非常棒!你學會了sort()函式的特殊用法!本章節你已經學完了全部知識! STL標準函式庫 vector容器
1.vector的功能 vector包含著一系列連續儲存的元素,性質和陣列十分相似。訪問元素或者在末尾插入元素常數級別,插入元素是線性級別。要注意的是,vector的尾部元素是 vector ve vector iterator iter iter ve.end 1 這裡一定要減 cout ite ...
STL和C 標準函式庫 (三)
stl是最新的c 標準函式庫中的乙個子集,這個龐大的子集佔據了整個庫的大約80 的分量。而作為在實現stl過程中扮演關鍵角色的模板則充斥了幾乎整個c 標準函式庫。在這裡,我們有必要看一看c 標準函式庫裡包含了哪些內容,其中又有哪些是屬於標準模板庫 即stl 的。c 標準函式庫為c 程式設計師們提供了...
stl排序之sort函式
stl容器的排序,支援隨機訪問的容器vector,deque,string沒有sort成員,可呼叫std sort排序 list排序呼叫自帶的list sort。下面是std sort函式,有兩個版本 template void sort randomaccessiterator first,ran...