【发布时间】:2020-06-16 19:11:06
【问题描述】:
我有一个类,它有一个在指定索引处添加元素的方法。 我试图复制向量的最后一个元素并将每个元素向右移动一次,以便我可以将新元素插入到给定位置。 这是我写的代码:
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
【问题讨论】:
-
insert() 有什么问题?
-
使用调试器逐句执行代码,同时监控变量及其值。您可能写出
elemek向量的范围。如果您需要更多帮助,请尝试创建minimal reproducible example 向我们展示。 -
我忘了说我知道 insert() 但我想弄清楚这个错误信息以供学习使用
标签: c++ class oop object methods