调试错误。 R6010 abort 已被调用()
Debug error. R6010 abort has been called()
#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;}
我的任务是写出输入次数最多的数字。我知道这可能不是最好的主意,但它是我的第一个 "good",所以我同意了。它编译得很好,但是当 运行 时给我那个标题的错误。我在几个地方尝试了 cout <<,问题似乎是从 while 循环开始的。
您尝试访问 rep
的第一个元素,它是一个空向量。
您必须先实际添加元素才能访问它们。现在您正在读取和写入不属于您的内存。
#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;}
我的任务是写出输入次数最多的数字。我知道这可能不是最好的主意,但它是我的第一个 "good",所以我同意了。它编译得很好,但是当 运行 时给我那个标题的错误。我在几个地方尝试了 cout <<,问题似乎是从 while 循环开始的。
您尝试访问 rep
的第一个元素,它是一个空向量。
您必须先实际添加元素才能访问它们。现在您正在读取和写入不属于您的内存。