【发布时间】:2013-11-20 16:55:55
【问题描述】:
我正在尝试在 Visual Studio 2010 Pro 上运行该程序。 我可以成功编译它,但是当我运行程序时出现以下错误:
调试断言失败! 表达式:向量下标超出范围。
在这个简单的程序中,我试图计算整数向量中连续非 nul 数的最大和。
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
int somme(vector<int> tab);
int main() {
vector<int> tab;
tab[0] = 2;
tab[1] = 3;
tab[2] = 0;
tab[3] = 0;
tab[4] = 4;
cout <<somme_consecutifs_max(tab) << endl;
return 0;
}
int somme(vector<int> tab){
int sum(0);
int max(0);
for (int i = 0; i < tab.size(); ++i){
if(tab[i] != 0) {
sum += tab[i];
}
else{
if(sum > max){
max = sum;
}
sum = 0;
}
}
return max;
}
另一方面,为什么我不能在 Visual Studio 2010 中初始化我的 int 向量,原因如下:
vector<int> tab = {1, 2, 0, 0, 3};
【问题讨论】:
标签: c++ visual-studio-2010 debugging vector runtime-error