亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
荣成市| 宁夏| 淮安市| 利津县| 邓州市| 衡东县| 宁陵县| 宣武区| 隆尧县| 息烽县| 桐柏县| 肃宁县| 阿拉尔市| 钟山县| 衡水市| 邵阳县| 新巴尔虎右旗| 思南县| 大名县| 海南省| 平陆县| 睢宁县| 平顶山市| 伊吾县| 托克托县| 苍南县| 宁阳县| 阳新县| 岳西县| 嘉善县| 芷江| 庆阳市| 左贡县| 武胜县| 双流县| 喜德县| 南城县| 余江县| 威宁| 丹江口市| 柘荣县|