有谁知道一个有效的算法来使用现有的整数排序(如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