2016-05-14 80 views
-1

如何在一行中输入多个整数到C++中的向量?像:如何将多个输入输入到只有一行输入的矢量中?

请输入整数:1 2 3 4 5

请问代码的样子:

vector<int> intV; 
cout << "Please enter integers: "; 
cin >> intV; 
+0

哦,是的,是我不好。 C++ – TheCoxer

+2

@TheCoxer使用循环:'while(cin >> num){intV.push_back(num); } –

+0

@πάνταῥεῖ回答此处vvvvvvvvvvvvvvvvvvvvv;) – wally

回答

2

你可以重载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'中,然后使用这个操作符。 –