VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 164|回复: 4

[已解决]我想请问下 在这里通过迭代器去删除动态数组时,显示内存错误是因为什么呢,希望大神...

[复制链接]
87_avatar_middle
最佳答案
0 
在线会员 发表于 2020-1-12 16:37:30 | 显示全部楼层 |阅读模式
在调试中可以看到 3被删除
itor迭代器的指针指向了7
然后就会提示内存访问错误

javascript:;

javascript:;


#include<iostream>
#include<fstream>
#include<vector>
#include<typeinfo>
using namespace std;

int addArray(int* array, int n);
int main()
{


        vector<int> array_int = { 1,4,3,7,9,3,6,9,3,5,2,3,7 };
        //cout << array_int[1] << endl;

        vector<int>::iterator itor;


        for (itor = array_int.begin(); itor != array_int.end(); ++itor)
        {
                if (*itor == 3)
                {

                        array_int.erase(itor);
                        --itor;
                }
               
        }


        return 0;

}
最佳答案
51_avatar_small
2020-1-12 17:00:35
STL中各容器的erase()方法遍历删除元素
https://www.cctry.com/thread-287377-1-1.html
(出处: VC驿站)
微信截图1.png
微信截图2.png




上一篇:关于线程篇,实例,有个无法确定的问题
下一篇:VS2013调试总是提示“无法查找或打开 PDB 文件”
87_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-1-12 16:46:00 | 显示全部楼层
查询后了解 : 当容器中的一个元素被删除时,指向该元素后续的迭代器变得无效,只要执行了if中的代码,itor就会变无效
51_avatar_middle
最佳答案
82 
online_admins 发表于 2020-1-12 17:00:35 | 显示全部楼层    本楼为最佳答案   
bestAnswer
STL中各容器的erase()方法遍历删除元素
https://www.cctry.com/thread-287377-1-1.html
(出处: VC驿站)
87_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-1-12 17:02:39 | 显示全部楼层
        itor = array_int.begin();
        while (itor != array_int.end())
        {
                if (*itor == 3)
                {
                        itor = array_int.erase(itor);
                }
                else
                {
                        ++itor;
                }

        }
        return 0;

}
87_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-1-12 17:03:47 | 显示全部楼层
Syc 发表于 2020-1-12 17:00
STL中各容器的erase()方法遍历删除元素
https://www.cctry.com/thread-287377-1-1.html
(出处: VC驿站)

谢谢Syc大佬
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-1 15:03

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表