帶你了解C++中的sort函數(shù)
sort( )
使用方法:
sort(首元素地址(必填),尾元素地址的下一個(gè)地址(必填),比較函數(shù)(非必填))
必須加上頭文件:#include< algorithm >和using namespace std;
舉個(gè)栗子:
#include<stdio.h> #include<algorithm> using namespace std; int main() { int book[5]={5, 4, 2, 8, 7}; sort(book,book+5); int i; for(i=0;i<5;i++) { printf("%d ",book[i]); } return 0; }
char型數(shù)組
#include<stdio.h> #include<algorithm> using namespace std; int main() { char book[]={'A','L','B','Q'}; sort(book,book+4); int i; for(i=0;i<4;i++) { printf("%c ",book[i]); } return 0; }
我們上面的排序都是由小到大排序,然后我們可以使用cmp來(lái)自定義排序方式。
#include<stdio.h> #include<algorithm> using namespace std; bool cmp(int a,int b) { return a>b;//a大于b時(shí),把a(bǔ)放在前面 } int main() { int book[ ]={5,2,0,1,3,1,4}; sort(book,book+7,cmp); int i; for(i=0;i<7;i++) { printf("%d ",book[i]); } return 0; }
char型數(shù)組
#include<stdio.h> #include<algorithm> using namespace std; bool cmp(char a,char b) { return a>b; } int main() { char book[]={'Q','S','A','Z','L'}; sort(book,book+5,cmp); int i; for(i=0;i<5;i++) { printf("%c ",book[i]); } return 0; }
結(jié)構(gòu)體數(shù)組排序
#include<stdio.h> #include<algorithm> using namespace std; struct node { int x,y; }book[10]; bool cmp(node a,node b) { return a.x>b.x;//按x由大到小排序 } int main() { book[0].x=5; book[0].y=2; book[1].x=0; book[1].y=5; book[2].x=2; book[2].y=1; sort (book,book+3,cmp); int i; for(i=0;i<3;i++) { printf("%d %d \n",book[i].x,book[i].y); } return 0; }
#include<stdio.h> #include<algorithm> using namespace std; struct node { int x,y; }book[10]; bool cmp(node a,node b) { if(a.x!=b.x) return a.x>b.x;//x不等時(shí)按x排序 else return a.y<b.y;//x相等時(shí)按y排序 } int main() { book[0].x=5; book[0].y=2; book[1].x=0; book[1].y=5; book[2].x=2; book[2].y=1; sort (book,book+3,cmp); int i; for(i=0;i<3;i++) { printf("%d %d \n",book[i].x,book[i].y); } return 0; }
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
QT中QByteArray與char、int、float之間的互相轉(zhuǎn)化
本文主要介紹了QT中QByteArray與char、int、float之間的互相轉(zhuǎn)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05C數(shù)據(jù)結(jié)構(gòu)之單鏈表詳細(xì)示例分析
以下是對(duì)C語(yǔ)言中的單鏈表進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08C++中的三種繼承public,protected,private詳細(xì)解析
我們已經(jīng)知道,在基類以private方式被繼承時(shí),其public和protected成員在子類中變?yōu)閜rivate成員。然而某些情況下,需要在子類中將一個(gè)或多個(gè)繼承的成員恢復(fù)其在基類中的訪問(wèn)權(quán)限2013-09-09C語(yǔ)言編程數(shù)據(jù)結(jié)構(gòu)的棧和隊(duì)列
本篇文章是C語(yǔ)言編程篇,主要為大家介紹C語(yǔ)言編程中的數(shù)據(jù)結(jié)構(gòu),詳細(xì)的講解了數(shù)據(jù)結(jié)構(gòu)的棧和隊(duì)列有需要的朋友可以借鑒參考下,希望可以有所幫助2021-09-09C語(yǔ)言?超詳細(xì)順序表的模擬實(shí)現(xiàn)實(shí)例建議收藏
程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要?jiǎng)?chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個(gè)數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示2022-03-03C++中sln,vcxproj,vcxproj.filters,lib,dll,exe的含義說(shuō)明
這篇文章主要介紹了C++中sln,vcxproj,vcxproj.filters,lib,dll,exe的含義說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05QT樹(shù)的具體項(xiàng)目實(shí)現(xiàn)
本文主要介紹了QT樹(shù)的具體項(xiàng)目實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06C語(yǔ)言從猜數(shù)字游戲中理解數(shù)據(jù)結(jié)構(gòu)
猜數(shù)字是興起于英國(guó)的益智類小游戲,起源于20世紀(jì)中期,一般由兩個(gè)人或多人玩,也可以由一個(gè)人和電腦玩。游戲規(guī)則為一方出數(shù)字,一方猜,今天我們來(lái)用這個(gè)游戲案例理解數(shù)據(jù)結(jié)構(gòu)2022-04-04