调试错误。 R6010中止被称为()

时间:2015-03-02 22:02:51

标签: c++ debugging abort

#include "../../../std_lib_facilities.h"

int main() {

vector <int> nmb; vector <int> rep; vector <int> prt; int flag = 0; int temp = 0; int br = 0; int max = -1; int ind = 0; cout << "Enter as much integers as you like\n"; while (cin >> temp) { if (nmb.size() == 0) { nmb.push_back(temp); prt.push_back(temp); ++rep[br]; ++br; } else { for (int i = 0; i < nmb.size(); ++i) { if (temp == nmb[i]) { ++rep[i]; flag = 1; } } if (flag == 0) { nmb.push_back(temp); prt.push_back(temp); ++rep[br]; ++br; } else if (flag == 1) { flag = 0; prt.push_back(temp); } } } cout << "You've entered numbers\n"; for (int j = 0; j < prt.size(); ++j) cout << prt[j] << " "; for (int k = 0; k < rep.size(); ++k) if (rep[k] > max) { max = rep[k]; ind = k; } cout << "\n\nMost repeated number is " << nmb[ind] << endl;}

我的任务是写出最多输入的号码。我知道这可能不是最好的主意,但它是我第一个“好”的主意,所以我选择了它。它编译得很好,但在运行时从该标题中给出了该错误。我试过cout&lt;&lt;在很少的地方,似乎问题始于while循环的开始。

1 个答案:

答案 0 :(得分:1)

您尝试访问rep的第一个元素,这是一个空向量。

您必须先实际添加元素,然后才能访问它们。现在你正在阅读并写入不属于你的记忆。