首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

使用map的时候无法清空map里面的数据,该如何解决

2012-04-15 
使用map的时候无法清空map里面的数据C/C++ codeclass Mytl{//主程序代码}class MytlOSCfg{public:mapCStr

使用map的时候无法清空map里面的数据

C/C++ code
class Mytl{    //主程序代码}class MytlOSCfg{public:    map<CString,Mytl*> threadList;    CRITICAL_SECTION mytlThreadListLock;}class MytlDlg{public:    MytlOSCfg *osCfg = new MytlOSCfg;    afx_msg LRESULT CMytlDlg::StopAll(WPARAM wParam,LPARAM lParam)    {        EnterCriticalSection(&osCfg->mytlThreadListLock);        osCfg->threadList.clear();//在这里用SGList.empty()判断已经是空的了        updataThreadList();        LeaveCriticalSection(&osCfg->mytlThreadListLock);    }void CMytlDlg::updataThreadList(){    m_LBThreadsListItems.ResetContent();    if(!osCfg->threadList->empty())//这里向ListBox中添加数据的时候里面又有值了    {        for (map<CString,Mytl*>::iterator iter=threadList->begin();iter!=threadList->end();iter++)        {            m_LBThreadsListItems.AddString(iter->first);        }    }}};


这个要怎么弄了,下面有时候显示总是还有东西,要怎么做同步或都是处理就可以避免掉这些了

[解决办法]
clear() 函数清空不可以吗?
[解决办法]
clear()可以清空吧
[解决办法]
判断osCfg->threadList->empty() 时也要锁

热点排行