c++ - 使用没有向量的标准排序对二维数组进行排序
问题描述
#include <bits/stdc++.h>
using namespace std;
bool cmp(int *a, int *b){
if(a[0] == b[0]) return a[1] < b[1];
else return a[0] < b[0];
}
int main(){
int arr[10][2];
int n=10;
for(int i=0;i<n;i++) scanf(" %d %d",&arr[i][0], &arr[i][1]);
sort(arr, arr+n,cmp);
}
这段代码只是简单的事情。你的输入就像
3 2
3 1
1 1
2 2
6 6
4 4
5 5
7 7
8 8
9 9
和输出应该像
1 1
2 2
3 1
3 2
4 4
5 5
6 6
7 7
8 8
9 9
你可以简单地认为pair<int,int>。
假设 pair<int,int> 到 pair<a,b>。
我想先对“a”进行排序。如果'a'相同,那么你应该按'b'排序。(升序排序)
所以我一直在尝试像这样对数组进行排序。但它不起作用。
是的,我知道如果你使用“矢量”很容易,但我不想使用它。我将只使用 std::sort 。
当然你不能编译它,因为它是错误的。
我用谷歌搜索了这个问题,但找不到任何东西。有没有办法解决这个问题?
如果你运行它会有很多错误代码,所以这是编译器直接带给我的错误代码。
1849 11 C:\Program Files (x86)\Dev-Cpp\MinGW64\lib\gcc\x86_64-w64-mingw32\4.9.2\include\c++\bits\stl_algo.h [错误] 数组必须用大括号初始化- 封闭式初始化器
解决方案
推荐阅读
- swift - 如何使用 php 文件将谷歌云 sql 数据库链接到 swift?
- c++ - 带有 Vector 迭代器的 For 循环是否会复制值,从而使其效率低下?
- javascript - w2ui 组合输入在弹出窗口中不起作用
- prolog - 在Prolog中输出大于给定数字的整数
- azure-devops - ADF Git 使用 AzureResourceGroupDeployment 和 ARMTemplates 配置发布后断开连接
- reactjs - 用于导入多边形的 Openlayers 坐标格式?
- javascript - Simple Git 在单独测试时有效,但在大型项目 Node.js 中使用时无效
- assembly - 如何定义 NASM 程序集源中定义的 ELF 符号的大小?
- javascript - 在 nextjs 中刷新页面之前,不会加载 getInitialProps
- laravel - Laravel Livewire 排序国外领域