【发布时间】:2017-04-21 16:00:05
【问题描述】:
我正在尝试像这样对二维数组中的元素进行排序:
338 640 723.771 62.1603
364 804 882.56 65.642
199 664 693.179 73.3166
我需要根据第 3 列和第 4 列对它们进行排序。
以第 3 列为例:
199 664 693.179 73.3166
338 640 723.771 62.1603
364 804 882.56 65.642
对于第 4 列:
338 640 723.771 62.1603
364 804 882.56 65.642
199 664 693.179 73.3166
我希望我能解释一下我想要做什么。已经感谢您的帮助..
答案:
我找到了需要它的东西。我把代码放在这里也许对其他人有帮助。
这是列的比较函数:
bool Compare(vector<double> A, vector<double> B) {
return (A[2] < B[2]); // 2 means which column that you want to compare
}
这是排序代码:
std::sort(dots.begin(), dots.end(), &Compare); // "dots" needs to be a vector. in this case its a 2d double vector
【问题讨论】:
-
这似乎是一个多变量目标函数。您如何处理以下情况:r1 和 r2 是矩阵的两行; r1[2]