gpt4 book ai didi

在抛出 'std::out_of_range' 简单平均代码的实例后调用 C++ 终止

转载 作者:行者123 更新时间:2023-11-27 22:42:58 28 4
gpt4 key购买 nike

这里是 Comp Sci 201 学生。我正在运行一个简单的平均编码,但我一直收到这个错误,有什么智慧的话吗?

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main() {

int userIn = 0;
int numSum = 0;
cin >> userIn;

vector<int>v;

for(int i = 0; userIn !=-1;i++) {
v.at(i) = userIn;
v.push_back(i);
cin >> userIn;
}

for(unsigned i = 0; i <= v.size(); i+= 3) {
numSum = v.at(i) + v.at(i+1) + v.at(i+2);
}

cout << numSum/3;

}

在抛出一个实例后不断收到此错误终止调用

'std::out_of_range' what(): vector::_M_range_check: __n (which is 0) >= this->size() (which is 0)

在使用输入 4 4 4 - 之后

它似乎在丢弃我的 vector ,但我的 vector 现在不应该是 3 的大小吗?大于 0?

谢谢,我知道我是个新手。

最佳答案

不,你的 vector 不会是三个,因为错误发生在你做任何事情之前:

vector<int>v; // This vector is empty length

for(int i = 0; userIn !=-1;i++) {
v.at(i) = userIn; // You are attempting to get an index
// from an empty vector. Failure will occur!

关于在抛出 'std::out_of_range' 简单平均代码的实例后调用 C++ 终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46611687/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com