在多列上对二维数组进行排序

我需要使用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);