欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++自定義實(shí)現(xiàn)比較器

 更新時(shí)間:2024年01月16日 17:01:13   作者:莫潯  
這篇文章主要為大家詳細(xì)介紹了如何使用C++自定義實(shí)現(xiàn)比較器,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

sort() 中的比較函數(shù) compare 要聲明為靜態(tài)成員函數(shù)或全局函數(shù),不能作為普通成員函數(shù),否則會(huì)報(bào)錯(cuò)。

cmpChar實(shí)現(xiàn)功能:大寫字母大于小寫字母,小寫字母按 a-z 升序,大寫字母按 A-Z 升序

1 在類內(nèi)部定義比較器

聲明為靜態(tài)成員函數(shù)

class Solution {
public:
    void CharacterSort(const vector<char> e_char)
    {
      cout << "before:" << endl;
        for (auto i : e_char) {
            cout << i;
        }
        cout << endl;

        std::sort(e_char.begin(), e_char.end(), cmpChar);
        cout << "after:" << endl;
        for (auto i : e_char) {
            cout << i;
        }
        cout << endl;
    }

private:
    static bool cmpChar(const char &a, const char &b)
    {
        if (a <= 'Z' && b >= 'a')
            return false;
        else if (b <= 'Z' && a >= 'a')
            return true;
        else
            return a < b;
    }

};

輸入:
vector e_char = {‘C’,‘B’,‘A’,‘c’,‘b’,‘a’};
輸出:
before:
CBAcba
after:
abcABC

2 在函數(shù)內(nèi)部定義比較器

lamda表達(dá)式

class Solution {
public:
    void CharacterSort(const vector<char> e_char)
    {
      cout << "before:" << endl;
        for (auto i : e_char) {
            cout << i;
        }
        cout << endl;
        auto cmpChar = [](const char &a, const char &b) {
            if (a <= 'Z' && b >= 'a')
                return false;
            else if (b <= 'Z' && a >= 'a')
                return true;
            else
                return a < b;
        };

        std::sort(e_char.begin(), e_char.end(), cmpChar);
        cout << "after:" << endl;
        for (auto i : e_char) {
            cout << i;
        }
        cout << endl;
    }

3 全局函數(shù)比較器

using namespace std;

bool cmpChar(const char &a, const char &b)
    {
        if (a <= 'Z' && b >= 'a')
            return false;
        else if (b <= 'Z' && a >= 'a')
            return true;
        else
            return a < b;
    }

class Solution {
public:
    void CharacterSort(const vector<char> e_char)
    {
      cout << "before:" << endl;
        for (auto i : e_char) {
            cout << i;
        }
        cout << endl;

        std::sort(e_char.begin(), e_char.end(), cmpChar);
        cout << "after:" << endl;
        for (auto i : e_char) {
            cout << i;
        }
        cout << endl;
    }

以上就是C++自定義實(shí)現(xiàn)比較器的詳細(xì)內(nèi)容,更多關(guān)于C++比較器的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 軟件構(gòu)建工具makefile基礎(chǔ)講解

    軟件構(gòu)建工具makefile基礎(chǔ)講解

    這篇文章介紹了軟件構(gòu)建工具makefile,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • 一篇文章帶你了解C++的KMP算法

    一篇文章帶你了解C++的KMP算法

    這篇文章主要介紹了c++ 實(shí)現(xiàn)KMP算法的示例,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下,希望能給你帶來幫助
    2021-08-08
  • FFmpeg中avfilter模塊的介紹與使用

    FFmpeg中avfilter模塊的介紹與使用

    FFmpeg中的libavfilter模塊(或庫)用于filter(過濾器),?filter可以有多個(gè)輸入和多個(gè)輸出,下面就跟隨小編一起簡單學(xué)習(xí)一下它的巨日使用吧
    2023-08-08
  • C/C++實(shí)現(xiàn)控制臺(tái)輸出不同顏色字體的方法

    C/C++實(shí)現(xiàn)控制臺(tái)輸出不同顏色字體的方法

    這篇文章主要介紹了C/C++實(shí)現(xiàn)控制臺(tái)輸出不同顏色字體的方法,涉及C++控制臺(tái)文字屬性相關(guān)設(shè)置操作技巧,需要的朋友可以參考下
    2017-09-09
  • Qt?QTableWidget基本操作及使用

    Qt?QTableWidget基本操作及使用

    QTableWidget?是?Qt?中的表格組件類。很類似于VC、C#中的DataGrid,本文就詳細(xì)來介紹一下Qt?QTableWidget基本操作及使用,感興趣的可以了解一下
    2021-11-11
  • C++實(shí)現(xiàn)LeetCode(101.判斷對稱樹)

    C++實(shí)現(xiàn)LeetCode(101.判斷對稱樹)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(101.判斷對稱樹),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++11 中的std::function和std::bind詳解

    C++11 中的std::function和std::bind詳解

    這篇文章主要介紹了C++ 11 std::function和std::bind,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • C語言實(shí)現(xiàn)教務(wù)管理系統(tǒng)

    C語言實(shí)現(xiàn)教務(wù)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)教務(wù)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++11中可變模板參數(shù)的實(shí)現(xiàn)

    C++11中可變模板參數(shù)的實(shí)現(xiàn)

    C++11的可變參數(shù)模板允許創(chuàng)建可以接受可變參數(shù)的函數(shù)和類模板,通過遞歸展開參數(shù)包來處理每個(gè)參數(shù),下面就來介紹一下,感興趣的可以了解一下
    2024-12-12
  • C++編程中使用設(shè)計(jì)模式中的policy策略模式的實(shí)例講解

    C++編程中使用設(shè)計(jì)模式中的policy策略模式的實(shí)例講解

    這篇文章主要介紹了C++編程中使用設(shè)計(jì)模式中的policy策略模式的實(shí)例講解,文章最后對策略模式的優(yōu)缺點(diǎn)有一個(gè)簡單的總結(jié),需要的朋友可以參考下
    2016-03-03

最新評(píng)論