返回题解分享
讨论 / 题解分享/ 帖子详情

vector排序——题解

#include <bits/stdc++.h>
using namespace std;

int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n,c,t;
cin>>n;
vector<int>a[n+1];//创建了n+1个vector对象,也就是一维数组a的每个元素都是vector
for(int i=1;i<=n;i++)
{
cin>>c;//输入数组的大小
while(c--)//利用while循环c次,将对应的数组元素推入每一个数组
{
cin>>t;
a[i].push_back(t);
}
sort(a[i].begin(),a[i].end());//每完成一次就先将当前数组排序
}
sort(a+1,a+n+1);//按字典序对n个数组进行排序,因为数组一旦创建,下标就是从0开始的
//而我们在存数据的时候是从1开始的,所以要使用a+1,至于a+n+1,因为C++的 sort(first, last) 排序范围是 [first, last),
//包含first,不包含last,所以sort的第二个参数要指向最后一个元素的下一个位置,是 a+n+1
for(int i=1;i<=n;i++)
{
for(int j=0;j<a[i].size();j++)
{
cout<<a[i][j]<<" ";//输出数组元素
//i代表是第i组数组,j代表是第i组数组的第j个元素
}
cout<<endl;
}
return 0;
}
0 回复 0 转发 0 喜欢 1 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!