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

C++ 自定义类函数导致的内存错误,c++,class,oop,object,methods,C++,Class,Oop,Object,Methods,我有一个类,它有一个在指定索引处添加元素的方法。 我试图复制向量的最后一个元素,并将每个元素向右移动一次,以便将新元素插入到给定位置。 以下是我编写的代码: 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] = e

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

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;
}
应该是

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

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

有什么问题吗?在监视变量及其值的同时,使用调试器逐条检查代码语句。您可能写的内容超出了
elemek
向量的范围。如果您需要更多帮助,请尝试创建一个来向我们展示。我忘了说我了解insert(),但我想找出此错误消息以便于学习。错误是什么?在监视变量及其值的同时,使用调试器逐语句逐步检查您的代码语句。您可能写的内容超出了
elemek
向量的范围。如果您需要更多帮助,请尝试创建一个来向我们展示。我忘了说我知道insert(),但我想找出此错误消息以供学习之用。我不敢相信我没有注意到这一点。谢谢真不敢相信我竟然没有注意到这一点。谢谢
for (int i = elemek.size()-2; i > index; i--){