限制矢量中的元素数量

Limiting number of elements in vector

本文关键字:元素      更新时间:2023-10-16
试图

限制用户在手动将数组输入 1 时可以插入向量的输入量,但由于某种原因,这很奇怪。

#include <iostream>
using namespace std;
void fillVector(vector<int>& newThisIsAVector)
{
cout << "Please type in your 10 numbers separated by a space. On completion    press enter.";
int input;
cin >> input;
while (newThisIsAVector.size() < 10)
{
    newThisIsAVector.push_back(input);
    cin >> input;
}
cout << endl;
}

应该将您限制在 10,但相反,它需要 10,然后当您按 Enter 时它会创建一个新行。然后您键入第 11 个数字并再次按回车键。然后脚本工作并注册前 10 个数字并很好地执行其他命令,但使用前 10 个数字并完全忽略不需要的第 11 个数字。 ;/

我该如何解决?

您可以在循环之前使用一次cin,在重复 10 次的循环中使用一次。 1 + 10 等于 11,因此要求输入 11 次。要将输入数限制为 10,您需要将调用限制为 cin 10。

因为当您记录键入第 10 个元素时,向量仍然有 9 个元素。因此,在下一个循环中,您将在向量中添加第 10 个并请求第 11 个。

如果您知道输入将是 10 个元素,为什么不使用 C++11 std::array ?