kol*_*vra 5 c++ iostream stl vector
请考虑以下代码段:
...
int N,var;
vector<int> nums;
cin >> N;
while (N--)
{
cin >> var;
nums.push_back(var);
}
...
Run Code Online (Sandbox Code Playgroud)
在这种情况下,是否可以在不使用辅助变量的情况下执行此操作var?
Die*_*lla 11
假设你已经阅读了初始版本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));
Run Code Online (Sandbox Code Playgroud)
该back_inserter对象将自身转换为迭代器,在末尾向向量添加元素.迭代器流可以通过读取的元素的类型进行参数化,如果没有给出参数,则表示输入的结束.