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

溫馨提示×

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
米泉市| 大埔县| 南康市| 德令哈市| 龙里县| 西充县| 通河县| 舟山市| 鄂伦春自治旗| 搜索| 贵州省| 敦化市| 嵊州市| 崇文区| 永登县| 宜都市| 新巴尔虎左旗| 同仁县| 确山县| 乡城县| 清丰县| 山丹县| 崇礼县| 安图县| 苍南县| 永修县| 磐石市| 柳林县| 微博| 卓尼县| 荔波县| 汝阳县| 鄢陵县| 宁化县| 基隆市| 白朗县| 江门市| 阿巴嘎旗| 海淀区| 新乡县| 通渭县|