c++ - 使用 std::sort 对二维 c 数组进行排序
问题描述
我似乎无法使用 std::sort 对二维 c 数组进行排序。但是,我可以对一维数组进行排序。这是在我被交给 c++ 程序中的 ac 数组并希望在不将其复制到 std::array 的情况下进行排序的情况。也许有一些方法可以将它变成一个 std::array 而不复制它?这对我来说听起来很可疑,因为任何 std::array 都会在它不拥有的内存上调用析构函数。
排序一维 c 样式数组工作得很好:
int len = 5;
auto one_dim_less = [](int a, int b){
return a < b;
};
int one_dim[] = {4, 0, 3, 1, 2};
std::sort(one_dim, one_dim + len, one_dim_less);
尝试按第二个数字对二维 c 样式数组进行排序不会编译:
int len = 5;
auto two_dim_less = [](int a[2], int b[2]){
return a[1] < b[1];
};
int two_dim[][2] = {{1,8}, {2,4}, {3,10}, {4,40}, {5,1}};
std::sort(two_dim, two_dim + len, two_dim_less);
解决方案
推荐阅读
- continuous-integration - GitLab CI:在 before_script 构建作业中导出变量
- macos - 找不到全局 npm 安装的终端 (zsh) 命令
- api - 如何使用 Limesurvey API 设置其他问题属性?
- c++ - 什么时候需要删除 C 风格的数组?
- php - 尝试在 PHP 中的 JSON 对象上使用 JSON_DECODE 并返回 null
- sql-server - SSMS 使用箭头键浏览对象
- python - 有没有办法使用用户名或电子邮件登录到 Django 管理界面?
- postgresql - 在 Redshift 中创建视图时,有什么方法可以强制后期绑定?
- c# - 处理高级数据模板中的数据上下文更改
- react-native - 单击返回按钮时获取上一个屏幕,