首页 > 解决方案 > 有没有办法使用 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

标签: c++c++11

解决方案


是的,只从索引 1 开始排序。

std::sort(a+1,a+n+1);

推荐阅读