c++while跳出循环的判定

我的目的是输出最大的数,但是每次输入数字后要再输入一个其他不是数的符号才可以跳出循环,请问有什么方法不用输入其他的符号也可以跳出循环的方法吗?
```c++
#include
#include
#include
using namespace std;
int main()
{
    int a;
    vector<int>p;
    while(cin >> a)
    {
        p.push_back(a);
    }
    sort(p.begin(), p.end());
    cout << *(p.end()-1) << endl;
    system("pause");
    return 0;
}

```

那你自己要说清楚,输入什么才算输入结束呢?你总得有个输入结束标志吧?比如输入0,输入负数,或者输入EOF
cin>>a的输入结束标志就是输入的不是整数