使用Range-v3 對C 語言中的壓縮鎖定容器進行排序
挑戰
任務手頭上的工作涉及對多個向量或容器進行排序,同時保持它們的同步順序。理想情況下,這種排序應該在不將容器複製到元組或結構中的情況下進行。
Range-v3 解
Range-v3 是一個現代 C 庫,提供了方便的解決這個問題的方法。以下範例示範如何使用其廣泛的功能對壓縮容器進行排序:
#include <range/v3/all.hpp> #include <iostream> using namespace ranges; int main() { std::vector<int> a1{15, 7, 3, 5}; std::vector<int> a2{1, 2, 6, 21}; // Zip and sort the containers sort(view::zip(a1, a2), std::less< std::pair<int, int> >{}, &std::pair<int, int>::first); // Print the sorted vectors std::cout << view::all(a1) << '\n'; std::cout << view::all(a2) << '\n'; }
即時範例
說明
結論
此Range-v3 解提供了一種優雅且有效的方法來對多個鎖定容器進行排序,同時保留其同步順序。它強調了 Range-v3 在解決 C 語言中複雜資料操作挑戰方面的強大功能。
以上是如何使用 Range-v3 對 C 中的多個向量進行排序,同時保持同步?的詳細內容。更多資訊請關注PHP中文網其他相關文章!