c++ - 有没有办法使用 std::sort() 并且仍然保持基于 1 的索引?
问题描述
我希望我的数组即使在sort()
完成后也能保持基于 1 的索引。我下面的代码在最后一个索引处给了我一个垃圾值,因为在排序完成后打印代码时i = n
应该循环
。有没有办法使用并仍然维护基于 1 的索引?for(int i = 0; i < n; i++)
std::sort()
int n;
cin >> n; // 6
int a[n+1];
for(int i = 1; i <= n; i++)
cin >> a[i]; // INPUT ARRAY: 6 4 2 7 2 7
sort(a, a+n+1);
for(int i = 1; i <= n; i++)
cout << a[i] << " "; // OUTPUT AFTER SORTING: 2 4 6 7 7 6421920
解决方案
是的,只从索引 1 开始排序。
std::sort(a+1,a+n+1);
推荐阅读
- angular - 从环境中设置 Angular 9 Material Google 映射键
- c++ - 在 Windows 桌面应用程序和/或控制台应用程序中使用 Windows 驱动程序工具包(特别是 wdm.h)功能
- c++ - 字符变量作为 Y/N 问题的输入
- c - 当命令包含“..”时,系统函数在 C 中不起作用
- c++ - 我如何在 C 中编写此 C++ 代码。链表迭代?
- python - 将类的实例附加到列表会覆盖以前的实例属性
- webpack - 如何以角度使用 webpack“output.devtoolNamespace”
- vue.js - NUXT 插件 CSS 未在生产中加载
- accessibility - aria role="application" 和制表符
- reactjs - 无法获取数据 ReactJS