涉及的知识点:
vector容器存储结构体变量
sort自定义排序
稳定排序:冒泡排序
不稳定排序:algorithm中的sort函数,为不稳定排序
题目地址:http://noi.openjudge.cn/ch0110/
01:谁考了第k名
#include <iostream>
#include <vector>
#include <algorithm>
struct stu
{
int num;
float grade;
};
bool compare(const stu* st1,const stu* st2)
{
return st1->grade>st2->grade;
}
int main()
{
int n,k;
std::cin>>n>>k;
std::vector<stu*> v;
for(int i=0;i<n;i++)
{
stu *student = new stu();
int num;
float grade;
std::cin>>num>>grade;
student->num = num;
student->grade = grade;
v.push_back(student);
}
sort(v.begin(),v.end(),compare);
// for(std::vector<stu*>::iterator it=v.begin();it!=v.end();it++)
// {
// std::cout<<(*it)->num<<" "<<(*it)->grade<<std::endl;
// }
std::cout<<(*v[k-1]).num<<" "<<(*v[k-1]).grade<<std::endl;
// std::cout<<v[k-1]->num<<" "<<v[k-1]->grade<<std::endl;//这两种访问方式都可以
return 0;
}
02:奇数单增序列
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
int n;
std::cin>>n;
std::vector<int>vc;
while(n--)
{
int num;
std::cin>>num;
if(num%2!=0)
vc.push_back(num);
}
sort(vc.begin(),vc.end());
bool firstF = true;
for(int i=0;i<vc.size();i++)
{
if(firstF)
{
std::cout<<vc[i];
firstF = false;
}
else
{
std::cout<<","<<vc[i];
}
}
return 0;
}