91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C++ std::max 與自定義比較函數

c++
小樊
82
2024-08-02 19:47:14
欄目: 編程語言

在C++中,std::max 是一個模板函數,用于返回兩個值中的較大值。如果要在使用 std::max 函數時自定義比較函數,可以使用函數指針或者 lambda 表達式來實現。

例如,如果要找出兩個字符串中長度較長的那個字符串,可以這樣寫:

#include <iostream>
#include <algorithm>
#include <string>

bool compareStringLength(const std::string &a, const std::string &b) {
    return a.length() < b.length();
}

int main() {
    std::string str1 = "hello";
    std::string str2 = "world";
    
    std::string longerStr = std::max(str1, str2, compareStringLength);
    
    std::cout << "The longer string is: " << longerStr << std::endl;
    
    return 0;
}

上面的例子中,我們定義了一個比較字符串長度的比較函數 compareStringLength,然后將其作為第三個參數傳遞給 std::max 函數。

另一種方法是使用 lambda 表達式來定義比較函數,如下所示:

#include <iostream>
#include <algorithm>
#include <string>

int main() {
    std::string str1 = "hello";
    std::string str2 = "world";
    
    std::string longerStr = std::max(str1, str2, 
        [](const std::string &a, const std::string &b) {
            return a.length() < b.length();
        });
    
    std::cout << "The longer string is: " << longerStr << std::endl;
    
    return 0;
}

在這個例子中,我們使用 lambda 表達式來定義比較函數,直接將其作為第三個參數傳遞給 std::max 函數。

無論是使用函數指針還是 lambda 表達式,都可以很方便地在使用 std::max 函數時自定義比較函數。

0
大石桥市| 梅州市| 孝义市| 柳河县| 宁城县| 达州市| 丰城市| 曲麻莱县| 福海县| 四平市| 田阳县| 汾阳市| 仁布县| 额尔古纳市| 瓮安县| 山东| 手机| 古浪县| 陆川县| 凤山县| 谷城县| 于都县| 九江市| 黑龙江省| 昭苏县| 清涧县| 安丘市| 鄄城县| 辽宁省| 沐川县| 赣榆县| 巫溪县| 庄河市| 舒城县| 平安县| 兴国县| 英德市| 佛教| 霸州市| 新安县| 吉首市|