国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++ sort()函數具體用法

這篇具有很好參考價值的文章主要介紹了C++ sort()函數具體用法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

sort()函數詳解

sort()函數可以將一個容器或者數組的值進行排序,還可以自定義排序方式。sort()是基于頭文件<algorithm>庫下的一個函數,所以要調用sort(),就需要添加頭文件。

基本排序方法

#include<iostream>
#include<algorithm>
using namespace std;
int main() {
    int arr[] = { 2,4,7,1,3 };
    return 0
}
一.正常排序

我們可以通過寫

sort(arr, arr + 5);

我們就可以將arr中從開始的元素到第5個元素按從小到大的順序進行排序。

二.排序數據中間個別元素

如果我們寫

sort(arr + i, arr + j);

那么被排序的就是arr[i]arr[j - i],其他元素將保持原位置。

三.從大到小排序或按照一個規(guī)則排序

如果我們希望arr中的元素從大到小排序(或者按照某一個規(guī)則進行排序),我們可以再為sort傳入第三個參數--“排序方法”:

sort(arr, arr + 5, greater<int>());

其中greater表示“跟大”的意思,<int>表示待排序的數組元素類型為int,整個代碼表示讓一個元素類型為整數的數組從大到小排序 。

四.最終代碼

自此我們的程序會成為:

#include<iostream>
#include<algorithm>
using namespace std;
int main() {
    int arr[] = { 2,4,7,1,3 };

    //=============排序從小到大======
    sort(arr, arr + 5);
    for (int i = 0; i < 5; i++)
        cout << arr[i] << " ";
    cout << endl;

    //=============從大到小======
    sort(arr, arr + 5, greater<int>());
    for (int i = 0; i < 5; i++)
        cout << arr[i] << " ";
    cout << endl;

    //=============排序中間元素======
    sort(arr + 1, arr + 4);
    for (int i = 0; i < 5; i++)
        cout << arr[i] << " ";
    cout << endl;

    return 0;
}

執(zhí)行后輸出如下

c++sort函數的用法,c++,c++,算法,排序算法,Powered by 金山文檔

自定義排序--基礎

我們可以之后再寫一個sort,在這個sort中,我們可以再為sort傳入第三個參數--“排序方法”。

首先我們在int main()之前加上:

cmp函數,定義要為bool類型,具體就是傳入x,y,兩個參數進行比較。

如果返回值為真就會將第一個參數排在第二個參數前(注意,不能出現等號,如果出現等號,一定要給該值為false)。理解困難的話,其實就是看返回值這,返回x > y,前面大于后面就是從大到小排序。

bool cmp(int x, int y){
    return x > y;
}

并且在sort的第三個參數中傳入cmp,sort函數是系統(tǒng)定義好的,可以直接支持函數地址作為參數。

sort(arr, arr + 10, cmp);

具體代碼如下

#include<iostream>
#include<algorithm>
using namespace std;

bool cmp(int x, int y){
    return x > y;
}

int main() {
    int arr[] = { 2,4,7,1,3,5,9,6,8,10};
    sort(arr, arr + 10, cmp);
    for (int i = 0; i < 10; i++)
        cout << arr[i] << " ";
    cout << endl;
    return 0;
}

執(zhí)行后輸出如下

c++sort函數的用法,c++,c++,算法,排序算法,Powered by 金山文檔
我們再舉一個例子

例如我們要將一個數組arr按照除3的余數從小到大排序來進行排序。

我們先寫一個cmp,因為可能有相等的余數,如果相等我們按照其本身的大小進行從小到大排序。

bool cmp(int x, int y){
   if(x % 3 != y % 3)
      return x % 3 < y % 3;
   else
      return x < y;
}

具體代碼如下

#include<iostream>
#include<algorithm>
using namespace std;

bool cmp(int x, int y){
   if(x % 3 != y % 3)
      return x % 3 < y % 3;
   else
      return x < y;
}
int main() {
    int arr[] = { 1,2,3,4,5,6,7,8,9,10};
    sort(arr, arr + 10, cmp);
    for (int i = 0; i < 10; i++)
        cout << arr[i] << " ";
    cout << endl;
    return 0;
}

運行結果如下

c++sort函數的用法,c++,c++,算法,排序算法,Powered by 金山文檔

自定義排序--結構體

下面我們再來了解sort對于結構體的排序,我們可以按照結構體中某個元素來進行排序。

例如,我們寫一個學生的結構體,里面有姓名和成績,我們要按照成績從大到小排序。

我們先寫一個結構體Student

struct Student{
   string name;
   int score;
};

我們要按照得分來進行排序

bool cmp(Student x, Student y){
   return x.score > y.score;
}

具體代碼如下

#include<iostream>
#include<algorithm>
using namespace std;
struct Student {
    string name;
    int score;
};
bool cmp(Student x, Student y) {
    return x.score > y.score;
}
int main() {
    Student stu[4];
    stu[0].name = "A";
    stu[0].score = 80;
    stu[1].name = "B";
    stu[1].score = 75;
    stu[2].name = "C";
    stu[2].score = 96;
    stu[3].name = "D";
    stu[3].score = 85;

    sort(stu, stu + 4, cmp);

    for (int i = 0; i < 4; i++) {
        cout << stu[i].name << ":" << stu[i].score << endl;
    }
    return 0;
}

運行結果如下

c++sort函數的用法,c++,c++,算法,排序算法,Powered by 金山文檔

以上就是我對sort函數的見解,如果此文章有錯誤或者有不同的見解歡迎評論或者私信。文章來源地址http://www.zghlxwxcb.cn/news/detail-736180.html

到了這里,關于C++ sort()函數具體用法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • JAVA的sort用法詳解(二維數組排序,List<>排序,lambada表達式,自定義類型排序)

    JAVA的sort用法詳解(二維數組排序,List<>排序,lambada表達式,自定義類型排序)

    目錄 前言: 一維數組降序: 方法1.Comparator接口: 代碼實現: 方法2.Collections.reverseOrder(): 代碼實現:? 二維數組排序: 代碼如下: List排序: 代碼如下: 自定義類型比較排序: 按照年齡逆序排序: 按照姓名升序排序: lambada表達式簡寫: 一維數組逆序代碼: 二維數組排

    2024年04月09日
    瀏覽(104)
  • Python基礎之sorted()函數用法

    本篇是關于sorted()函數的一些基本用法,如有不足缺陷歡迎補充指正。 1、簡單的排序 sorted函數可以對可迭代類型的容器內的數據進行排序 2、進階使用 sorted(L,key=···) 其中key用來接收一個自定義的排序規(guī)則 3、選擇升序還是降序排列方式 其中sorted函數是默認升序排序,

    2024年02月11日
    瀏覽(19)
  • js中.sort()函數的用法

    這是.sort()函數最常見的用法 但或許你還對其為什么要這么操作存有一些疑惑 我們要先搞懂往.sort()里傳入的函數的參數a,b是什么 sort()要排序就要遍歷數組,以上面的數組為例子 其中遍歷第一步的a=3、b=2, 第二步時候a=2、b=3, 第三步的時候a=3,b=34 。。。。。。。 就像你寫

    2024年02月02日
    瀏覽(26)
  • MATLAB中sort函數的用法大全

    1.sort的基本用法 MATLAB中的sort函數用于對數組進行排序。最基本的用法是: sortedArray = sort(Array); 這會按照升序對數組進行排序。要按降序排序,你可以使用\\\'descend\\\'選項: sortedArray = sort(Array, \\\'descend\\\'); 如果你的數組是多維的,你可以指定你要排序的維度。例如,要按列排序,你

    2024年04月22日
    瀏覽(19)
  • 【C++】STL 算法 - 排序算法 ( 合并排序算法 - merge 函數 | 隨機排序算法 - random_shuffle 函數 | 反轉序列算法 - reverse 函數 )

    【C++】STL 算法 - 排序算法 ( 合并排序算法 - merge 函數 | 隨機排序算法 - random_shuffle 函數 | 反轉序列算法 - reverse 函數 )

    在 C++ 語言 的 標準模板庫 ( STL , STL Standard Template Library ) 中 , 提供了 merge 合并排序算法函數 用于 將 兩個已排序好的容器 合并成一個新的已排序的容器 ; merge 合并排序算法 函數原型 如下 : 參數解析 : InputIterator1 first1 參數 : 有序 輸入 容器 1 的 迭代器范圍 的 起始迭代器 (

    2024年01月18日
    瀏覽(29)
  • 【排序算法詳細介紹】桶排序(Bucket Sort)冒泡排序(Bubble Sort)快速排序(Quick Sort)

    今天學習了一些簡單的 排序算法 ,其實在我們平時解決問題中經常用到,今天正好一起看了看,記錄一下。 如果對你也有幫助,我很開心~ 桶排序是一種排序算法,它將數組劃分為一些 有序的桶 ,然后 每個桶再分別排序 。最后,將所有的桶合并起來,得到一個有序的數組。桶排

    2024年01月25日
    瀏覽(21)
  • Python之排序函數sort(),sorted(),sort_values(),sort_index().

    1. sorted()函數 sorted()函數是Python的內置函數,此函數不改變原序列,在排序后會生成一個新的序列。調用時,一般只需要給出一個序列即可,該序列可以是列表,字典,元組,字符串。其余參數取默認值,默認為升序排序。最終結果將返回一個以列表為容器的返回值。若該序

    2024年02月04日
    瀏覽(26)
  • 排序算法(stable_sort(), sort())

    sort函數我相信大家都不陌生,今天介紹一個新的排序算法stable_sort stable_sort:穩(wěn)定排序算法,維持相等元素的原有順序。 假如我們定義一個字符串數組 這些字符串是按照字典序排列的,我們現在想要words按照單詞長度從小到大重排的同時,還希望具有相同長度的元素按照字典

    2024年02月07日
    瀏覽(24)
  • 【排序算法】堆排序(Heap Sort)

    【排序算法】堆排序(Heap Sort)

    堆排序是指利用堆這種數據結構所設計的一種排序算法。堆是一個近似完全二叉樹的結構,并同時滿足堆積的性質:即子結點的鍵值或索引總是小于(或者大于)它的父節(jié)點。 學習堆排序之前,有必要了解堆!若讀者不熟悉堆,建議先了解堆(建議可以通過二叉堆,左傾堆,

    2024年02月01日
    瀏覽(21)
  • 46,排序算法sort

    排序算法sort 常用排序算法 sort 學習目標: 掌握i常用排序算法 算法簡介: sort //對容器內元素進行排序 random_shuffle //洗牌,指定范圍內的元素隨機調整次序 merge //容器元素合并,并存儲到另一容器中 reverse //反轉指定范圍的元素 功能描述: 對容器內元素進行排序 函數原型:

    2024年02月16日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包