【发布时间】:2017-09-23 17:16:38
【问题描述】:
我有一个数组数组,例如:[[4, 204], [10, 39], [1, 500]])。
我想按子数组的第一个元素对它们进行排序,使其变为:[[1, 500], [4, 204], [10, 39]]。
对于C++,我找不到这个问题的任何答案。
我将如何在C++ 中执行此操作?
代码:
int n;
int time;
int timeTable[100][2];
if (inputFile.is_open()) {
for (int i = 0; i < 100; i++) {
inputFile >> n;
timeTable[i][0] = n;
inputFile >> time;
timeTable[i][1] = time;
}
}
【问题讨论】:
-
C++ 中不能有这样的数组。显示代码!
-
如果没有显示您如何定义数组的代码,我们无法告诉您如何对它们进行排序。我们无法确定您对数组的定义...
-
对不起,我对 C++ 很陌生。我不确定我如何声明数组是好的/有效的。我编辑了问题并输入了代码。
-
有没有办法在 C++ 中做到这一点——答案是“是”。那你想让我们做什么?
-
那么这里是给你的问题——你愿意跳出框框思考吗?对二维数组进行排序的一种方法是不对数组进行排序,而是对指向数组内部的索引数组进行排序,然后使用排序后的索引来访问元素。这样做比在排序函数中操作二维数组要容易得多。请see this as an example
标签: c++