自定义类函数导致内存错误



我有一个类,它有一个在指定索引处添加元素的方法。我试图复制矢量的最后一个元素,并将每个元素向右移动一次,这样我就可以将新元素插入到给定的位置。这是我写的代码:

void Halmaz::add(const int index, const int num) {
elemek.push_back(elemek.back());
for (int i = elemek[elemek.size()-2]; i > index; i--){
elemek[i] = elemek[i-1];
}
elemek[index] = num;
//findMax();
}

以下是我在尝试调用add((函数时遇到的错误:测试代码:

int main()
{
Halmaz lista;
lista.add(2);
lista.add(3);
lista.add(6);
lista.add(1);
lista.add(3);
lista.print();
cout << endl;
cout << lista.getMax() << endl;;
lista.add(66);
lista.print();
cout << lista.getMax() << endl;;
cout << "---------------------" << endl;
lista.add(2,10); //the program stops here
cout << "---------------------" << endl;
return 0;
}

错误:

once 00C7CE88 is 201369893
for (int i = elemek[elemek.size()-2]; i > index; i--){

应该是

for (int i = elemek.size()-2; i > index; i--){

最新更新