最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++對(duì)象排序的比較你了解嗎

 更新時(shí)間:2022年02月25日 17:13:40   作者:諾謙  
這篇文章主要為大家詳細(xì)介紹了C++對(duì)象排序的比較,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1.對(duì)象比較介紹

在排序中進(jìn)行交換的前提主要是進(jìn)行對(duì)象間的 比較、

而常見的排序是對(duì)一個(gè)數(shù)組排序,然后對(duì)每個(gè)數(shù)組內(nèi)容進(jìn)行比較與交換、

如果是對(duì)一個(gè)class進(jìn)行排序,則需要進(jìn)行關(guān)鍵字成員進(jìn)行比較,需要重寫下面幾個(gè)操作符:

  • bool operator == (const class& t);        // 返回ture則表示相等
  • bool operator != (const class& t);        // 和==相等操作符返回值相反
  • bool operator <(const class& t);          // 返回true則當(dāng)前對(duì)象小于t對(duì)象
  • bool operator > (const class& t);
  • bool operator <=(const class& t);  
  • bool operator >=(const class& t);

比如將學(xué)生成績(jī)單按數(shù)學(xué)成績(jī)由高到低排序,如果數(shù)學(xué)成績(jī)相同的學(xué)生按英語成績(jī)的高低等級(jí)排序。

2.代碼實(shí)現(xiàn)

代碼如下所示:

#include <iostream>
using namespace std;
class Student {
    int number;     // 學(xué)號(hào)
    int mathScore;  // 數(shù)學(xué)成績(jī)
    int enScore;    // 英語成績(jī)
public:
    Student() {
    }
    Student(int number, int mathScore, int enScore) {
        this->number = number;
        this->mathScore = mathScore;
        this->enScore = enScore;
    }
    void printString() {
        cout<<"number:"<<number <<" mathScore:" << mathScore <<" enScore:"<< enScore << endl;
    }
    bool operator == (const Student& t) {
        return mathScore == t.mathScore && enScore == t.enScore;
    }
    // 不等于則調(diào)用==操作符,取反即可
    bool operator != (const Student& t) {
        return !(*this == t);
    }
    bool operator <(const Student& t) {
        return mathScore < t.mathScore || (mathScore == t.mathScore && enScore < t.enScore);
    }
    bool operator > (const Student& t) {
        return mathScore > t.mathScore || (mathScore == t.mathScore && enScore > t.enScore);
    }
    bool operator <=(const Student& t) {
        return !(*this > t);
    }
    bool operator >=(const Student& t) {
        return !(*this < t);
    }
};

測(cè)試代碼如下所示(使用上章我們寫的冒泡排序):

    Student arr[8] = {
        Student(1,65,77),
        Student(2,44,65),
        Student(3,75,65),
        Student(4,65,77),
        Student(5,98,97),
        Student(6,86,96),
        Student(7,92,63),
        Student(8,32,78)
    };
    bubbleSort(arr, 8);         // 使用冒泡排序 升序
    cout<<"ascend: "<<endl;
    for (int i = 0; i < 8; ++i) {
        arr[i].printString();
    }
    cout<<endl;
    bubbleSort(arr, 8, false);  // 使用冒泡排序 降序
    cout<<endl<<"descend: "<<endl;
    for (int i = 0; i < 8; ++i) {
        arr[i].printString();
    }

運(yùn)行打印:

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!  

相關(guān)文章

  • C++ string類getline()用法實(shí)例詳解

    C++ string類getline()用法實(shí)例詳解

    C++ getline()是一種標(biāo)準(zhǔn)庫(kù)函數(shù),用于從輸入流中讀取字符串或行,它是<string>標(biāo)頭的一部分,本文介紹C++ string類getline()用法詳解,感興趣的朋友一起看看吧
    2024-03-03
  • Cocos2d-x Schedule定時(shí)器的使用實(shí)例

    Cocos2d-x Schedule定時(shí)器的使用實(shí)例

    這篇文章主要介紹了Cocos2d-x Schedule定時(shí)器的使用實(shí)例,本文的講解內(nèi)容包含在代碼注釋中,需要的朋友可以參考下
    2014-09-09
  • C++實(shí)現(xiàn)打地鼠游戲設(shè)計(jì)

    C++實(shí)現(xiàn)打地鼠游戲設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)打地鼠游戲設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • C++函數(shù)參數(shù)匹配規(guī)則示例小結(jié)

    C++函數(shù)參數(shù)匹配規(guī)則示例小結(jié)

    這篇文章主要介紹了C++函數(shù)參數(shù)匹配規(guī)則,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 盤點(diǎn)分析C語言中少見卻強(qiáng)大的字符串函數(shù)

    盤點(diǎn)分析C語言中少見卻強(qiáng)大的字符串函數(shù)

    這篇文章主要為大家盤點(diǎn)及分析C語言中少見卻強(qiáng)大的字符串函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02
  • 一文讀懂C++中指針和內(nèi)存分配

    一文讀懂C++中指針和內(nèi)存分配

    我們知道聲明的所有變量在內(nèi)存中都有一個(gè)特定的地址。聲明一個(gè)指針變量來指向內(nèi)存中的這些地址,這篇文章主要介紹了C++中指針和內(nèi)存分配,需要的朋友參考下吧
    2021-06-06
  • C++多繼承多態(tài)的實(shí)例詳解

    C++多繼承多態(tài)的實(shí)例詳解

    這篇文章主要介紹了C++多繼承多態(tài)的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C語言、C++內(nèi)存對(duì)齊問題詳解

    C語言、C++內(nèi)存對(duì)齊問題詳解

    這篇文章主要介紹了C語言、C++內(nèi)存對(duì)齊問題詳解,內(nèi)存對(duì)齊的問題主要存在于理解struct和union等復(fù)合結(jié)構(gòu)在內(nèi)存中的分布,需要的朋友可以參考下
    2014-10-10
  • C語言的動(dòng)態(tài)內(nèi)存管理你了解嗎

    C語言的動(dòng)態(tài)內(nèi)存管理你了解嗎

    這篇文章主要為大家詳細(xì)介紹了C語言的動(dòng)態(tài)內(nèi)存管理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Ubuntu中使用VS Code與安裝C/C++插件的教程詳解

    Ubuntu中使用VS Code與安裝C/C++插件的教程詳解

    這篇文章主要介紹了Ubuntu中使用VS Code與安裝C/C++插件的教程詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

凤山县| 乳山市| 翼城县| 兴国县| 巴塘县| 云阳县| 杭州市| 望城县| 晋城| 阜南县| 元阳县| 海门市| 乐山市| 额尔古纳市| 台前县| 泾川县| 门源| 财经| 大足县| 房产| 贵南县| 阿克| 电白县| 乃东县| 怀安县| 丰原市| 本溪市| 山西省| 宣化县| 潮安县| 南漳县| 两当县| 定远县| 吴川市| 北安市| 海林市| 渝北区| 香河县| 宝清县| 上蔡县| 南部县|