我想在一行中输入未知数量的向量。 例如 3 1 1 2 在这里我从第一次输入知道有3个数字。但我不知道如何在矢量数组的下一行存储3个数字。 另一个例子 - 4 2 3 2 3 我想用C ++(vector)。
答案 0 :(得分:5)
int n, x;
std::vector<int> v;
if (std::cin >> n)
while (n--)
if (std::cin >> x)
v.push_back(x);
else
throw std::runtime_error("missing value");
else
throw std::runtime_error("missing count");
答案 1 :(得分:1)
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
int main()
{
int count = 0;
std::cin >> count;
// check that count is correct
std::vector<int> vec;
// input
std::copy_n(std::istream_iterator<int>(std::cin), count, std::back_insert_iterator<std::vector<int> >(vec)); // std::copy_n is part of C++11
// show vector
std::copy(std::begin(vec), std::end(vec), std::ostream_iterator<int>(std::cout, " ")); // std::begin() and std::end() are part of C++11
return 0;
}
答案 2 :(得分:1)
试试这个,对我有用:
#include <vector>
#include <sstream>
vector<int> numbers;
string str;
int x;
getline (cin, str);
stringstream ss(str);
while (ss >> x)
numbers.push_back(x);
如果我输入类似的内容:
1 2 3 4 5
向量包含这些数字,然后继续执行下一行代码,而不是循环返回以从用户那里获得更多输入