我想创建一个在C++中返回连续2D数组的函数.
使用以下命令创建阵列不是问题:
int (*v)[cols] = new (int[rows][cols]);
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何将此数组作为函数的常规类型返回.功能是:
NOT_SURE_WHAT_TYPE create_array(int rows, int cols)
{
int (*v)[cols] = new (int[rows][cols]);
return v;
}
Run Code Online (Sandbox Code Playgroud)
我尝试了双*[]和双**,两者都不起作用.我不想使用double*,因为我想从外部访问这个数组作为2D数组.
相关问题:如何使用new在C++中声明二维数组?
我有一个像下面这样的2D数组.(array[5][2]
)
20 11
10 20
39 14
29 15
22 23
Run Code Online (Sandbox Code Playgroud)
排序后应该如下所示.
10 20
20 11
22 23
29 15
39 14
Run Code Online (Sandbox Code Playgroud)
这意味着应该对数组进行排序,仅比较第一列值.
在Java中,有一个内置的功能来实现这一点.如下.
Arrays.sort(a, new Comparator<Long[]>() {
@Override
public int compare(Long[] o1, Long[] o2) {
Long t1 = o1[1];
Long p1 = o1[0];
Long t2 = o2[1];
Long p2 = o2[0];
if (t1 == t2) {
return (p1 > p2 ? 1 : (p1 == p2 ? 0 : -1));
} else {
return (t1 < t2 …
Run Code Online (Sandbox Code Playgroud)