亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這里的cmp是干嗎用的呢?如果cmp為true和false是會出現怎樣的排序呢?

這里的cmp是干嗎用的呢?如果cmp為true和false是會出現怎樣的排序呢?

小怪獸愛吃肉 2022-11-18 17:13:34
bool cmp(int a,int b){return a>b;}排序的時候就寫sort(a,a+100,cmp);假設自己定義了一個結構體nodestruct node{int a;int b;double c;}
查看完整描述

2 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

cmp實際上是一個函數模板,sort在調用時,是一個通用的過程。你可以假想sort是一個小機器人,能夠在一個倉庫里將貨架上的貨物進行排序。你第一次要求機器人“按照大小排序”,于是機器人花了幾分鐘完成了大小排序,第二次你要求機器人“按照重量排序”,于是機器人再次回到倉庫,對同樣的貨物進行排序,不同的是這次并不按照大小,而是按照重量進行排序。

在這個的例子里,cmp函數決定了排序的方法,也就是重量、大小還是長度等等不同維度的東西。因為你的例子sort數據都是整數,因此看不出來這個函數的威力,如果輸入的數據是struct,每個數據由不同的屬性,比如上面例子的尺寸大小、重量甚至顏色等等,那么cmp函數寫法就很有意思了

查看完整回答
反對 回復 2022-11-22
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

這個函數傳的是數組首地址,所以不需要返回值,for循環是需要大括號的。 改了一下: void sort(int array[],int n) { int i,j,k,temp; for(i=0;i<n-1;i++) {k=i; for(j=k+1;j<n;j++) if(array[k]>array[j]) k=j; temp=array[i]; array[i]=array[k]; array[k]=temp; } }

查看完整回答
反對 回復 2022-11-22
  • 2 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號