第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

請問在C++ algorithm 里的sort函數(shù)怎么用?

請問在C++ algorithm 里的sort函數(shù)怎么用?

海綿寶寶撒 2019-07-08 16:10:07
C++ algorithm 里的sort函數(shù)怎么用
查看完整描述

5 回答

?
白豬掌柜的

TA貢獻1893條經(jīng)驗 獲得超10個贊

#include<iostream>

using namespace std;

#include<algorithm>

#include<cstdlib>

int main(void)

{

    int n;

    cin >> n;

    int * m = (int *)malloc(sizeof(int) * n);

    //等價于int m[n];但是當n太大時程序可能會崩潰

    if(!m)//申請失敗時

    {

           perror("malloc");//報錯

           exit(-1);//結束程序

    }

    for(int i = 0; i < n; i++)

        cin >> m[i];

    sort(m, m + n);

    for(int i = 0; i < n; i++)

        cout << m[i] << ends;//ends是空格

    return 0;

}

如果填的話就是

從大到小排序:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#include<iostream>

using namespace std;

#include<algorithm>

#include<cstdlib>

bool cmp(int a,int b)

{

    return a > b;

}

int main(void)

{

    int n;

    cin >> n;

    int * m = (int *)malloc(sizeof(int) * n);

    //等價于int m[n];但是當n太大時程序可能會崩潰

    if(!m)//申請失敗時

    {

        perror("malloc");//報錯

        exit(-1);//結束程序

    }

    for(int i = 0; i < n; i++)

        cin >> m[i];

    sort(m, m + n, cmp);

    for(int i = 0; i < n; i++)

        cout << m[i] << ends;//ends是空格

    return 0;

}

 說白了,第三個參數(shù)就是我們自己寫的一個函數(shù),這個函數(shù)只要返回只為int類型就可以了并且有兩個參數(shù)就可以了,但是若真的想要做到排序,只要讓(從小到大)這個函數(shù)里寫return a<b;就可以了如果是從大到小就return a>b;

1

2

3

4

5

/*cmp只是函數(shù)名稱,是可以隨便定義的。a和b的類型也不一定是int,可以是float、double、甚至你自己寫的結構體。但注意你比較的元素不再是a > b*/

int cmp(int a, int b)

{

    return a > b;//從大到小

}

如有一個結構體數(shù)組:

1

2

3

4

struct node

{

    int x, y, v;

}a[100];

那么cmp函數(shù)應該這么寫:

1

2

3

4

int cmp(struct node a, struct node b)

{

    return a.v > b.v;

}

按照v的大小來從大到小排序只需要:

sort(a, a + 100, cmp);


查看完整回答
反對 回復 2019-07-13
?
郎朗坤

TA貢獻1921條經(jīng)驗 獲得超9個贊

#include <algorithm>
void sort( iterator start, iterator end );
void sort( iterator start, iterator end, StrictWeakOrdering cmp );
第一個只需要傳遞你要排序的串(整形數(shù)組等都行)的頭指針(數(shù)組第一個元素的指針)與數(shù)組最后元素的下一個位置,sort是一個模板
第二個前面兩個參數(shù)同第一,但第三個參數(shù)是傳遞一個你定義用于排序的函數(shù)(返回比較的大小值,如strcmp或自定義的都行),因為第一個用的是默認的

查看完整回答
反對 回復 2019-07-13
?
交互式愛情

TA貢獻1712條經(jīng)驗 獲得超3個贊

●首先sort要包含algorithm頭文件。

●其次sort是std命名空間中的函數(shù),要寫std::sort,或者在最開始寫using namespace std;

●最后,C++中的sort很多情況下不需要你寫cmp函數(shù),像你的情況是比較兩個int,可以直接這么寫:
sort(a+j,a+n-j+1);
sort自己知道如何比較兩個int的。而且即使是復雜的比較,也一般寫仿函數(shù)而不是函數(shù),因為仿函數(shù)更快。

查看完整回答
反對 回復 2019-07-13
  • 5 回答
  • 0 關注
  • 1036 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號