如何基於兩個不同的比較標準對STL向量進行排序?默認的sort()函數只需要一個分類器對象。對兩個值的STL向量進行排序
10
A
回答
25
您需要將兩個標準合併爲一個。 下面是一個例子,說明如何根據第一個字段和第二個字段對具有第一個和第二個字段 的結構進行排序。
#include <algorithm>
struct MyEntry {
int first;
int second;
};
bool compare_entry(const MyEntry & e1, const MyEntry & e2) {
if(e1.first != e2.first)
return (e1.first < e2.first);
return (e1.second < e2.second);
}
int main() {
std::vector<MyEntry> vec = get_some_entries();
std::sort(vec.begin(), vec.end(), compare_entry);
}
注:執行compare_entry
更新爲Nawaz使用代碼。
相關問題
- 1. 如何用兩個變量對向量進行排序?
- 2. 使用另一個stl向量重新排序stl向量
- 3. 如何在R中對兩個向量進行排序?
- 4. 在R中對另外兩個向量進行排序
- 5. C++ STL排序向量
- 6. 如何使用stl向量對類中的字符串進行排序
- 7. MATLAB按值排序兩個向量
- 8. awk對兩個字段進行排序:
- 9. 通過兩個值對arraylist對象進行排序
- 10. 基於輸入向量對向量進行重新排序
- 11. 如何對mysql的兩個不同的值進行排序?
- 12. C++排序stl向量失敗(SIGTRAP)
- 13. 用兩個不同的值對HashSet進行排序?
- 14. 如何根據Vecs中的值對兩個Vecs進行排序?
- 15. 對來自兩個不同陣列的數值進行排序
- 16. 根據類中的變量對類的向量進行排序
- 17. 使用int向量向量對整數的向量進行排序
- 18. 如何根據另一個值對一個向量進行排序
- 19. 對JSON值進行排序?
- 20. 如何在Matlab中對向量中的排列值進行排序?
- 21. 用兩個結構變量對結構數組進行排序?
- 22. [Python]如何用兩個變量對字符串進行排序?
- 23. Ruby對多個值進行排序
- 24. 對持有unique_ptr向量的對象列表進行排序
- 25. 向量對通過對元素的差異進行排序
- 26. 使用多個變量對geom_bar中的y值進行排序
- 27. 如何按降序和第二個元素對對的向量進行排序?
- 28. 如何基於兩個鍵值對數組鍵進行排序?
- 29. 排序向量對
- 30. STXXL:如何對第二個元素上的對的向量進行排序?
你能詳細說明嗎?你想要什麼標準? – iammilind
更多信息 –
我正在排序具有兩種不同屬性的對象列表:距離和重要性。其中一個屬性的比較(更高的重要性)會覆蓋另一個(更近的距離)。所以說,如果一個對象的重要性是1而另一個是0,那麼即使距離較大,它也會被排序爲高於第二個對象。我無法通過一個比較找出一個辦法。 – toastie