限制向量中的元素数量

时间:2016-03-16 07:48:08

标签: c++ vector cin

当手动将数组输入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个数字并再次按Enter键。然后脚本工作并注册前10个数字并完成其他命令,但前10个数字完全忽略不需要的第11个数字。 ; /

我该如何解决?

2 个答案:

答案 0 :(得分:4)

在循环之前使用 db.once('open', function() { var mongoData = new storageData(); mongoData.fill(obj); var promise = new storageDataSchema(mongoData.getInformation()); console.log(promise.toString()); promise.save(function (err, promise) { if (err) return console.error(err); promise.speak(); mongoose.disconnect(); }); }); 一次,在循环内部重复使用10次。 1 + 10等于11,因此要求输入11次。要将输入数量限制为10,您需要将调用限制为cin为10。

答案 1 :(得分:0)

因为当你记录第10个元素的类型时,vector仍然有9个元素。所以在下一个循环回合中,你将在向量中添加第10个并要求第11个。

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