1.字符串分割 split ,分割方法使用空格

2.getline 获取cin 空格

3.cin.ignore(); in输入数字之后,数字存储在输入缓冲区,敲回车,输入的数字因为回车换行符仍然滞留在输入流了,如果在std::cin>>后面有着getline语句,这个换行符就被这个getline读取了,发现getline结果为空。在getline()之前加上cin.ignore()来舍弃输入流中不需要的字符

using namespace std;
void split(const string& s,vector<int>& sv,const char flag = ' ') {
    sv.clear();
    istringstream iss(s);
    string temp;

    while (getline(iss, temp, flag)) {
        sv.push_back(stoi(temp));
    }
    return;
}
int main() {
    int n=0;
    int i_sort = 0;
    vector<int> sv;
    while(cin>>n)
    {
        cin.ignore();
        string str="";
        getline(cin,str);
        sv.clear();
        split(str, sv, ' ');
        cin>>i_sort;
        if(i_sort==0)
        {
            sort(sv.begin(), sv.end());
        }
        else if(i_sort==1)
        {
            sort(sv.rbegin(), sv.rend());
        }
        for (const auto& s : sv) {
            cout <<s<<" ";
        }
    }
    return 0;
}