2016-05-14 131 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'中,然後使用這個操作符。 –