中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

c++ std::tie在排序中的應用

c++
小樊
84
2024-09-16 16:19:29
欄目: 編程語言

std::tie 是 C++ 標準庫中的一個函數,它主要用于創建一個元組引用,這樣可以方便地將多個值綁定到一起

下面是一個使用 std::tie 進行排序的例子:

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

struct Person {
    std::string name;
    int age;
    double height;
};

int main() {
    std::vector<Person> people = {
        {"Alice", 30, 170.5},
        {"Bob", 25, 180.0},
        {"Charlie", 22, 175.0},
        {"David", 22, 165.0}
    };

    // 按年齡和身高進行排序
    std::sort(people.begin(), people.end(), [](const Person &a, const Person &b) {
        return std::tie(a.age, a.height) < std::tie(b.age, b.height);
    });

    for (const auto &person : people) {
        std::cout<< person.name << " is "<< person.age << " years old and "<< person.height << " meters tall."<< std::endl;
    }

    return 0;
}

在這個例子中,我們首先定義了一個 Person 結構體,包含姓名、年齡和身高。然后,我們創建了一個 std::vector<Person>,并向其中添加了一些人員信息。

接下來,我們使用 std::sort 對這個向量進行排序。排序的依據是年齡和身高,所以我們使用了一個 lambda 表達式,該表達式使用 std::tie 將兩個 Person 對象的年齡和身高綁定到一起,然后比較這兩個元組。

最后,我們遍歷排序后的向量并輸出每個人的信息。

通過使用 std::tie,我們可以非常方便地實現復合條件的排序,而無需自己編寫比較函數。

0
凤台县| 牡丹江市| 杨浦区| 甘肃省| 云龙县| 荃湾区| 紫云| 天镇县| 科尔| 军事| 嘉黎县| 临朐县| 翼城县| 酒泉市| 汨罗市| 邮箱| 龙游县| 镇远县| 鄂托克前旗| 苍溪县| 无棣县| 库尔勒市| 新沂市| 淅川县| 长顺县| 巴南区| 韶关市| 江北区| 新津县| 镇平县| 公主岭市| 德庆县| 明光市| 建阳市| 永济市| 太保市| 加查县| 海宁市| 泽普县| 宜州市| 温州市|