空器皿跳过循环后,size()值为什么会改变

空容器跳过循环后,size()值为什么会改变?C/C++ codestd::vectorstd::pairint, int ::const_iterator i

空容器跳过循环后,size()值为什么会改变?

C/C++ code
    std::vector<std::pair<int, int> >::const_iterator iter;    for(iter = m_LastFocus.begin(); iter != m_LastFocus.end(); ++iter) {        EMap *emap = m_EMaps.at(iter->second * m_columns + iter->first)->getEMap();        if(emap) {            emap->setFrameStyle(QFrame::NoFrame);            emap->setBackgroundRole(QPalette::Window);        }    }    m_LastFocus.clear();

Debug到以上代码,开始的时候m_LastFocus是空的,size=0,capacity=0,F10后跳过for循环,这时候查看m_LastFocus发现size是一个很大的数,capacity是0.为什么size值会改变?

[解决办法]
那是内存乱了,哪越界了