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;
}