首頁 > 後端開發 > C++ > 如何在 C 中依照第二個元素對向量對進行排序?

如何在 C 中依照第二個元素對向量對進行排序?

Linda Hamilton
發布: 2024-12-16 21:31:12
原創
1006 人瀏覽過

How to Sort a Vector of Pairs in C   Based on the Second Element?

根據第二個元素對向量對進行排序

在C 中,我們可能會遇到需要根據第二個元素對向量對進行排序的情況。讓我們探索如何使用提供的資訊輕鬆實現此目的。

提供的對向量 vec 保存整數對,我們希望根據每對的第二個元素按升序對它進行排序。在不求助於自訂函數物件的情況下,讓我們利用標準範本庫 (STL) 和 std::less 來完成這項工作。

使用C 14 Lambda

C 14 中最簡單的解決方案利用lambda帶參數類型推斷:

這個匿名lambda 捕獲左右對並返回true if左邊的第二個元素小於右邊的第二個元素,有效地依升序對向量進行排序。

使用自訂比較器

如果lambda 不是選項,我們可以定義自訂比較器來處理排序:

sort_pred 結構實作比較運算子,比較兩對的第二個元素並傳回如果左側對的元素小於右側的元素,則為true。

使用範本比較器

要概括比較器並重複使用它進行排序,我們可以建立一個範本:

使用此模板,我們現在可以使用以下方式進行排序:

透過提供模板參數,我們指定對元素的類型,甚至可以使用不同的謂詞(如降序的std:: greater)來自訂比較。

以上是如何在 C 中依照第二個元素對向量對進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板