【发布时间】:2018-04-25 20:24:33
【问题描述】:
有人会帮助我理解以下代码中的 while 循环关于它的作用吗?例如,从用户那里获取输入:1 2 3 8(未给出输入大小)和一个值(任何索引)显示数组的大小。它正在打印数组的最大值。答案是 8。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
int t;
cin >> t;
while(t--)
{
string x;
getline(cin, x);
ll p;
istringstream iss(x);// use of this function
vector<ll> v;
ll ans;
while(iss>>p)// what this loop do
{
v.push_back(p);
}
ll size=v.size()-1;
sort(v.begin(), v.end());
if(size==v[size])
{
ans=v[size-1];
}
else
{
ans=v[size];
}
cout<<ans<<"\n";
}
return 0;
}
【问题讨论】:
-
你应该忽略cin中的一个字符,这样你才能正确输入字符串。使用 cin.ignore();在 cin >> t 之后; :)
标签: c++ arrays string c++11 int