在多列上对二维数组进行排序
我需要使用C或C ++在多列上对二维二维数组进行排序。 有人能指出我应该使用的算法还是具有此function的现有库(可能是boost?)?
我有一种感觉,写一个递归函数可能是要走的路,但我懒得写出算法或自己实现它,如果它已在其他地方完成。 🙂
谢谢
您可以使用std::sort
(C ++)或qsort
(C或C ++)来执行排序操作。 棘手的部分是您需要定义自定义比较函数来比较您的行。 例如:
bool compareTwoRows(double* rowA, double* rowB){ return ( (rowA[0]
我使用了以下代码:
// Order function. Change the 2 for the column number you want to use bool compareRowsByColumn(vector rowA, vector rowB){ return (rowA[2] < rowB[2]); } // The sorting line. Matrix is the two dimensional vector. sort(matrix.begin(), matrix.end(), &compareRowsByColumn);