TZOJ 5364: C++实验:STL之vector3
5364: C++实验:STL之vector3
时间限制(普通/Java):1000MS/3000MS 内存限制:65536KByte
总提交: 989 测试通过:424
总提交: 989 测试通过:424
描述
将n个数字输入到vector里,并对其进行从大到小排序并输出。
部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。
- C++
int main() { vector<int> vec; while(Input(vec)) { Sort(vec); for(vector<int>::iterator it=vec.begin();it!=vec.end();it++) { if(it!=vec.begin()) cout<<" "; cout<<*it; } cout<<endl; } return 0; }
输入
输入数据有多组,每组第一行为正整数n,第二行为n个整数,空格隔开。
输入以EOF结束。
输出
输出从大到小排序后的值。
AC感想:
咋说呢,还有很多要学习的,写的时候传参忘了地址符&,结构没输出,还是要记得啊;代码把主函数部分也贴出来了,记得删除掉噢~
#include<bits/stdc++.h> using namespace std; bool Input(vector<int> &vec)//传参一定要记得地址符&!!!!! { int n; if(cin>>n) { vec.clear();//清空栈 while(n--) { int m; cin>>m; vec.push_back(m);//m入栈 } return true;//输入的并非文件结束符EOF,程序继续 } return false;//这题因为主函数的是这个Input方法在while循环中,所以用这个方法判断程序是否结束 } bool comp(int a,int b) { return a>b;//排序从小到大就用<;从大到小就用>; } void Sort(vector<int> &vec) { sort(vec.begin(),vec.end(),comp);//学到了吗,vector的排序写法^^ } int main() { vector<int> vec; while(Input(vec)) { Sort(vec); for(vector<int>::iterator it=vec.begin();it!=vec.end();it++) { if(it!=vec.begin()) cout<<" "; cout<<*it; } cout<<endl; } return 0; }