TZOJ 5364: C++实验:STL之vector3

5364: C++实验:STL之vector3 分享至QQ空间

时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte
总提交: 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;
}

 

posted @ 2022-06-17 01:39  CRt0729  阅读(37)  评论(0编辑  收藏  举报