使用C++链表完成 元素次序 描述 输入一组数据,依次输出每个元素在升序排序后的次序,输入数据保证每个输入数据都是唯一的。 输入 第一行输入一个整数正整数N,第二行输入N个不相同的整数,每个数不超过整型范围。 输出 依次输出每个数的排名。
时间: 2024-02-12 13:06:26 浏览: 70
好的,我来给你提供一个用C++链表实现的代码。这里我使用STL中的list容器来实现链表,代码如下:
```c++
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
list<int> nums;
for(int i = 0; i < n; i++)
{
int num;
cin >> num;
nums.push_back(num);
}
list<int> sorted_nums(nums);
sorted_nums.sort();
for(int num : nums)
{
cout << distance(sorted_nums.begin(), find(sorted_nums.begin(), sorted_nums.end(), num)) + 1 << endl;
}
return 0;
}
```
这段代码会先读入一个整数N,然后读入N个不同的整数,将它们存入list容器nums中。接着,将nums复制一份存入另一个list容器sorted_nums中,并对sorted_nums进行升序排序。最后,遍历nums中的每个元素num,使用find函数在sorted_nums中查找num,并使用distance函数计算num在sorted_nums中的下标加1,即为每个元素的排名。
阅读全文