有誰知道一個有效的算法來使用現有的整數排序(如STL排序)來排序整數元組而不修改現有的整數排序。例如。我想排序4個整數元組的列表。元組的格式如下:<int,int,int, int>
。再次假設整數排序只能處理單個整數。如何使用現有的整數排序對整數元組進行排序?
回答
您可以按照您希望使用現有的C++排序例程「之類的」東西,僅通過定義自己的比較函數,比如,對於你的情況
sort(mytuplearray, mytuplearray + N, mycomp)
其中mycomp是
bool mycomp(tuple& a, tuple& b)
{
//compare however you like
}
你甚至可以使用元組的默認值,這是字典學比較,這很可能是這種情況下想要的。 –
我認爲你想爲'mycomp'參數使用'const tuple'。 –
如果你想使用標量比較器來創建一個詞典元組比較器,只需比較最後一對不相等的組件。像這樣的:
template<typename T>
class LexicographicCompare
{
private:
T Compare;
public:
LexicographicCompare(T Compare) : Compare(Compare)
{
}
bool operator()
(const tuple<int, int, int> & a
, const tuple<int, int, int> & b
) const
{
if (a[0] != b[0])
return Compare(a[0], b[0]);
if (a[1] != b[1])
return Compare(a[1], b[1]);
return Compare(a[2], b[2]);
}
};
sort(tuples.begin(), tuples.end(), LexicographicCompare(IntCompare()));
運算符<'爲元組重載以完成這件事。 –
我還沒有使用boost :: Tuple,所以不確定它們可以爲它們的元素提供比較函數。畢竟,Arya想重用任意整數比較(據我所知)。 –
- 1. 使用匯編語言中的gnome排序對整數數組進行排序
- 2. 在有符號整數中對元組進行排序
- 3. 如何使用快速排序對一對整數的結構進行排序?
- 4. 如何對可可中的整數數組進行排序?
- 5. 如何對整數數組進行排序?
- 6. 如何在Python中就地對整數數組進行排序?
- 7. Quicksort的Python實現無法對整個數組進行排序
- 8. 使用自定義排序規則對整數(非整數)數組排序
- 9. 用數組排序整數。
- 10. 對整數鏈表進行排序?
- 11. 排序數組的整數
- 12. 用整數對數組排序?
- 13. 如何使用整數鍵對數組的HashMap進行排序Java
- 14. 使用GET變量對數組進行排序..沒有排序
- 15. 對整數數組的ArrayList排序
- 16. 在C++中對整數的整數進行排序
- 17. 我可以對整數數組進行排序,按差異項排序?
- 18. 使用指針:對整數數組進行排序的程序,分段錯誤
- 19. 整數數組排序
- 20. 打印排序整數數組元素
- 21. 如何排序比快速排序更快的整數數組?
- 22. 對數組進行排序
- 23. 對數組進行排序
- 24. 如何按整數排序數組
- 25. 按照降序對整數進行排序而不使用數組
- 26. 3對已排序的數組進行排序。 O(NlogN)實現
- 27. 使用d3js對數組進行排序
- 28. 使用usort對數組進行排序?
- 29. 使用qsort對數組進行排序
- 30. 使用Java對數組進行排序
你想排序一個容器,其中每個元素是一個元組,或者你想排序一個單獨的元組? –
並假設您想對首先排列的列表進行排序,<2,2,2,2>或<3,1,1,1>? – Beta