考虑以下代码片段:
...
int N,var;
vector<int> nums;
cin >> N;
while (N--)
{
cin >> var;
nums.push_back(var);
}
...
是否可以在不使用辅助变量的情况下执行此操作,在本例中为 var
?
最佳答案
假设您已经阅读了初始的 N
,使用 istream_iterator
有一个很好的技巧:
std::vector<int> nums;
nums.reserve(N);
std::copy(std::istream_iterator<int>(std::cin),
std::istream_iterator<int>(),
std::back_inserter(nums));
back_inserter
对象将自身变成一个迭代器,在最后向 vector 添加元素。迭代器流可以通过读取的元素类型进行参数化,如果没有给出参数,则表示输入结束。
关于c++ - 在 C++ 中将输入直接输入到 vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4179655/