您现在的位置: 爱51代码网 >> 范文 >> 文章正文
vc报错vector iterators incompatible

我的程序提示这样的错误vector iterators incompatible,代码停到以下for循环的位置,不知道为什么,这个代码是我一个线程在不停的在vector中选取符合条件的对象进行删除,这样的错误偶尔发生,请大家帮下忙,谢谢
C/C++ code?for (std::vector<CCommand*>::iterator it = this->CommandList.begin();  it!=this->CommandList.end();) {     CCommand *cmdtmp = *it;     if (cmdtmp->m_Send == true)     {         Lock(&cs_log);                                 delete cmdtmp->command;         delete cmdtmp;         it = this->CommandList.erase(it);          Unlock(&cs_log);     }else{         it++;     } }          
Lock(&cs_log);
for (std::vector<CCommand*>::iterator it = this->CommandList.begin();
it!=this->CommandList.end();)
{
    CCommand *cmdtmp = *it;
    if (cmdtmp->m_Send == true)
    {
                 
        delete cmdtmp->command;
        delete cmdtmp;
        it = this->CommandList.erase(it);
    }else{
        it++;
    }
}
       
Unlock(&cs_log);
需要包含整个 遍历删除操作
其它地方遍历的时候也要加这个锁

vector iterators incompatible 意思是跌代器不兼容

我当时定义了两个 vector 但是由于不小心指向错了, 就导致这样的问题产生, 虽然两个vector都有相同的类型.

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    GIS用百度行政区域的经纬度直接画
    不小心卸载了.net 4 extend,vs2
    C#byte【】里的数转换成string时
    C#的session取不到值
    java如何判断一个字符串里的数字
    随机找出24个不一样的字,在把一
    java怎么实现html转为pdf
    lotus数据列表文档个数如何实时统
    lotus代理中LS如何将字符串保存到
    在lotus BS系统里怎样方便实现统
    不小心卸载了.net 4 extend,vs2
    C#的session取不到值
    java如何判断一个字符串里的数字
    java怎么实现html转为pdf
    undefined reference timer_crea
    linux文件/usr/lib破坏了,还原后
    Failed to open eth0
    android手机无法与eclipse或电脑
    C/C++洗牌算法源代码
    E-business suite system servic
    vc如何获得播放过程中一张图
    unresolved external symbol
    64位系统上指针是8字节吗
    父类 *指针=new 子类 有可能
    vc如何框选出图片中的条形码
    vc点击view中不可编辑文本工
    音乐盒的播放列表是用CListC
    多线程里调用CreateInstance
    MFC RIBBON 中如何为控件添加
    inno setup可以根据某个条件
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |