如何用C++中的STL对二维数组进行排序

来源:互联网 发布:餐饮电脑收银软件 编辑:程序博客网 时间:2024/05/16 07:38

对于熟悉二维数组的人,都知道如果对于二维数组进行操作的话,最方便的就是利指针。

代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
bool cmp(int *p, int *q)
{
if(p[0] == q[0])
{
if(p[1] == q[1])
{
return p[2] < q[2];
}
else
return p[1] < q[1];
}
else
return p[0] < q[0];
}
int main()
{
int **a = new int*[1000];
for(int i = 0; i < 1000; ++i)
{
a[i] = new int[3];
a[i][0] = i;
a[i][1] = i + 1;
a[i][2] = i + 2;
}
sort(a, a + 1000, cmp);
for(int j = 0; j < 1000; ++j)
{
printf("%d\t%d\t%d\n", a[j][0], a[j][1], a[j][2]);
}
return 0;
}

0 0