空容器跳过循环后,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值会改变?
[解决办法]
那是内存乱了,哪越界了
