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

溫馨提示×

c++中is_sorted函數對于自定義類型的支持

c++
小樊
84
2024-09-15 18:20:12
欄目: 編程語言

在C++中,std::is_sorted函數用于檢查一個范圍內的元素是否已經按照升序排列。對于自定義類型,要使std::is_sorted能夠正確工作,需要提供適當的比較操作。這可以通過重載operator<或提供自定義比較函數來實現。

下面是一個示例,展示了如何為自定義類型Person提供比較操作,并使用std::is_sorted檢查一個Person對象的向量是否已排序:

#include<iostream>
#include<vector>
#include<algorithm>

class Person {
public:
    std::string name;
    int age;

    // 重載小于運算符
    bool operator<(const Person& other) const {
        return age< other.age;
    }
};

int main() {
    std::vector<Person> people = {{"Alice", 30}, {"Bob", 25}, {"Charlie", 35}};

    // 使用自定義比較操作檢查是否已排序
    bool is_sorted = std::is_sorted(people.begin(), people.end());

    if (is_sorted) {
        std::cout << "The vector is sorted."<< std::endl;
    } else {
        std::cout << "The vector is not sorted."<< std::endl;
    }

    return 0;
}

在這個示例中,我們為Person類重載了operator<,以便根據age屬性進行比較。然后,我們使用std::is_sorted檢查people向量是否已按照年齡升序排列。

如果你不想重載運算符,也可以提供一個自定義比較函數。下面是一個使用自定義比較函數的示例:

#include<iostream>
#include<vector>
#include<algorithm>

class Person {
public:
    std::string name;
    int age;
};

// 自定義比較函數
bool compare_by_age(const Person& a, const Person& b) {
    return a.age < b.age;
}

int main() {
    std::vector<Person> people = {{"Alice", 30}, {"Bob", 25}, {"Charlie", 35}};

    // 使用自定義比較函數檢查是否已排序
    bool is_sorted = std::is_sorted(people.begin(), people.end(), compare_by_age);

    if (is_sorted) {
        std::cout << "The vector is sorted."<< std::endl;
    } else {
        std::cout << "The vector is not sorted."<< std::endl;
    }

    return 0;
}

在這個示例中,我們定義了一個名為compare_by_age的自定義比較函數,并將其作為參數傳遞給std::is_sorted。這樣,我們就可以在不重載運算符的情況下檢查people向量是否已按照年齡升序排列。

0
永德县| 家居| 贵阳市| 甘谷县| 修水县| 渝中区| 清徐县| 连城县| 应城市| 从江县| 光泽县| 洮南市| 大同县| 醴陵市| 鹤岗市| 东方市| 五大连池市| 西和县| 霞浦县| 青海省| 庆安县| 漳平市| 盐津县| 洛隆县| 佳木斯市| 九江县| 隆安县| 罗江县| 大洼县| 溧水县| 逊克县| 湘阴县| 湾仔区| 新乐市| 河北省| 唐山市| 泸州市| 鄂尔多斯市| 平陆县| 黄龙县| 阳东县|