如何将多个输入输入到只有一行输入的矢量中?
问题描述:
如何在一行中输入多个整数到C++中的向量?像:如何将多个输入输入到只有一行输入的矢量中?
请输入整数:1 2 3 4 5
请问代码的样子:
vector<int> intV;
cout << "Please enter integers: ";
cin >> intV;
答
你可以重载operator>>
如下做到这一点,如果你真的想。
std::istream& operator>>(std::istream& _is, std::vector<int>& _vec) {
int data;
while (_is >> data)
_vec.push_back(data);
return _is;
}
或者更灵活,
template<typename _Ty> std::istream& operator>>(std::istream& _is, std::vector<_Ty>& _vec) {
_Ty data;
while (_is >> data)
_vec.push_back(data);
return _is;
}
+1
必须注意的是,该操作符提取整数直到EOF(或找到第一个“坏”字符),直到行结束。要根据OP说你首先做一个'getline'来执行,把结果放在一个'istringstream'中,然后使用这个操作符。 –
哦,是的,是我不好。 C++ – TheCoxer
@TheCoxer使用循环:'while(cin >> num){intV.push_back(num); } –
@πάνταῥεῖ回答此处vvvvvvvvvvvvvvvvvvvvv;) – wally