Зависит от того, какую форму вы ожидаете получить. Если ожидаемый ввод представляет собой список чисел, разделенных пробелом, в одной строке:
>>>1 2 3 4 5 6
, это довольно легко решить:
#include<vector>
#include<string>
#include<iostream>
#include<sstream>
int main(){
std::vector<int> v; //default construct int vector
//read in line of input into "buffer" string variable
std::string buffer;
std::getline(std::cin, buffer);
//stream line of input into a stringstream
std::stringstream ss;
ss << buffer;
//push space-delimited ints into vector
int n;
while(ss >> n){
v.push_back(n);
}
//do stuff with v here (presumably)
return 0;
}
Если, однако, ожидаемый ввод список чисел, разделенный новой строкой:
>>>1
2
3
4
5
6
Вам нужно будет выбрать условие выхода, которое сообщит программе, когда прекратить принимать входные данные. Это может принять форму слова, которое скажет программе остановиться. Например:
>>>1
2
3
4
5
6
STOP
Программа, которая будет работать с таким входом:
#include<vector>
#include<string>
#include<iostream>
#include<sstream>
int main(){
std::vector<int> v; //default construct int vector
const std::string exitPhrase = "STOP"; //initialise exit phrase
//read in input into "buffer" string variable. If most recent input
// matches the exit phrase, break out of loop
std::string buffer;
while(std::cin >> buffer){
if(buffer == exitPhrase) break; //check if exit phrase matches
//otherwise convert input into int and push into vector
std::stringstream ss;
ss << buffer;
int n;
ss >> n;
v.push_back(n);
}
//do stuff with v here (again, presumably)
return 0;
}
Для более надежного решения, также рассмотрите возможность проверки ввода, чтобы увидеть, можно ли его преобразовать в Интс.