iterator循环的时候不能有删除操作erase()
来源:互联网 发布:学编程需要多少钱 编辑:程序博客网 时间:2024/05/08 05:44
iterator循环的时候不能有删除操作,在循环中先查找,然后在循环外面删。
void CThreadPool::MoveToBusyList(CWorkerThread* idlethread)
{
m_IdleMutex.Lock();
m_BusyMutex.Lock();
m_BusyList.push_back(idlethread);
m_BusyMutex.Unlock();
for(ite=m_IdleList.begin();ite!=m_IdleList.end();ite++)
{
if(*ite==idlethread)
break;
}
m_IdleList.erase(ite);//////////////////////////////就是这句
m_IdleMutex.Unlock();
}
void CThreadPool::MoveToIdleList(CWorkerThread* busythread)
{
m_BusyMutex.Lock();
m_IdleMutex.Lock();
m_IdleList.push_back(busythread);
m_IdleMutex.Unlock();
for(ite=m_BusyList.begin();ite!=m_BusyList.end();ite++)
{
if(*ite==busythread)
break;
}
m_BusyList.erase(ite);//////////////就是这句
m_BusyMutex.Unlock();
m_IdleCond.Signal();
}
- iterator循环的时候不能有删除操作erase()
- vector erase 重复删除容器内的指定内容时,使用迭代器(iterator)++的操作应该放到For循环内
- vector的iterator进行erase操作后报错vector iterators incompatible
- STL容器的遍历删除操作erase
- Iterator为什么不能对容器的进行添加或修改操作(可以删除)
- iterator erase
- 关于STL的list,vector等用迭代器iterator,用erase删除元素出现的问题。
- 关于STL的list,vector等用迭代器iterator,用erase删除元素出现的问题。
- vector 的删除操作pop_back、erase效率对比
- std erase执行后iterator的效果
- 关于STL erase的iterator失效问题
- 关于STL erase的iterator失效问题
- map在循环时删除时,mm.erase( it++ ) 和 it=mm.erase( it ) 的区别
- STL的erase操作
- STL 使用 erase 删除元素时 iterator 失效
- 循环根据iterator删除相应元素的代码
- 容器类iterator 循环删除结点的问题
- 容器erase删除的使用
- 《JAVA与模式》26天系列—第12天—享元模式=单例模式+工厂模式+合成模式
- Java项目实战 字符串 与 java.sql.Timestamp转换类
- c3p0连接池初始化出错
- MySQL存储过程问题集
- cocos2d-x 下使用加密 sqlite3
- iterator循环的时候不能有删除操作erase()
- shadow map 阴影贴图技术之探 4
- Jetty专题(一) 运行Servlet和运行的 web app
- 价格奥秘-在超市遇见亚当斯密--第九章 为什么不要接受薪水最高的工作?
- 价格奥秘-在超市遇见亚当斯密--第十章 便宜鸡蛋会创造更多的就业机会?
- Perl对FTP的上传和下载
- 5年前面试题引发的“血案”(3)(rowid和执行计划的简单说明)
- 视频格式D1
- js实现图片局部放大功能