【发布时间】:2021-11-01 09:38:33
【问题描述】:
我刚开始使用 C++,我想知道是否有一种方法可以按每个数组中的第二个值对二维数组进行排序。我在网上没有找到任何方法,所以我在这里问。
例如,您可以这样开始:
int exampleArray[5][2] = {
{4, 20},
{1, 4},
{7, 15},
{8, 8},
{8, 1}
};
排序后,数组将是
int exampleArray[5][2] = {
{8, 1},
{1, 4},
{8, 8},
{7, 15},
{4, 20}
};
在 Python 中,您可以使用 exampleArray.sort(key = lambda element : element[1]) 对其进行排序,但我不知道如何使用 C++ 进行排序
【问题讨论】:
-
反问:你试过什么?您可能只是有点错误,我们可以立即解决。
-
@user4581301 我什至不知道如何处理这个问题。
-
很公平。 C++ 中的数组是 C++ 中的二等公民,并且比您习惯从 Python 中获得的数组更难处理,因为 Python 中的数组在精神上更接近 C++ 的
std::vector(但仍然不是一个很好的匹配项)。 Here's an answer that should help you get started。您必须调整传递给std::qsort的 lambda 表达式中使用的规则,因为它当前基于第 1 列排序,第 2 列中断。 -
@CoderTang 我在网上没有找到任何方法 -- 想想outside the box。
标签: c++ arrays sorting matrix syntax