话不多收代码后面放女装
vector+node
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct node{
int time;
int num;
};
bool cmp(const node &x,const node &y){//sort排序方法
if(x.time!=y.time)
return x.time<y.time;
else
return
x.num<y.num;
}
int main(){
int n;
cin>>n;
node ce;
vector<node> vt;//定义方法
for(int i=0;i<n;i++){
cin>>ce.time;
ce.num=i+1;
vt.push_back(ce); //压入方法
}
sort(vt.begin(),vt.end(),cmp);
for(int i=0;i<n;i++){
cout<<vt[i].num;//访问方法
}
return 0;
}
map+node
#include <bits/stdc++.h>
using namespace std;
struct node
{
string name;
int h;
int w;
node()
{
h=-1;
w=-1;
}
};
node a[1000005];
map<int,node> mp;//从map直接可以访问结构体成员 定义方法
int main()
{
int n;
cin>>n;
int e;
for(int i=0;i<n;i++)
{
cin>>e;
cin>>a[i].name>>a[i].h>>a[i].w;
if(mp[e].h<a[i].h )//访问
{
mp[e]=a[i];//直接赋值
}
}
map<int,node> :: iterator it;//迭代器
int cnt1=mp.size();
int cnt=0;
for(it=mp.begin();it!=mp.end();it++)
{
cnt++;
int num=it->first;//map会自动对key值进行排序 所以第一次输出肯定是最小的号码
printf("%06d",num);//前面补充0
cout<<' '<<(it->second).name<<' '<<(it->second).h<<' '<<(it->second).w;//输出后面的值
if(cnt!=cnt1) cout<<endl;
}
return 0;
}