VC中的std::list的困惑
我写了这么一段程序:
CElemList::iterator iter;
#ifdef _DEBUG
long lCount = m_OldSelElem.size();
#endif
for (iter = m_OldSelElem.begin(); iter != m_OldSelElem.end(); iter++)
{
pElem = *iter;
pElem->Select(false);
pElem->Draw(&dc);
}
其中:m_OldSelElem是std::list的实例化对象。
我想,如果m_OldSelElem的size为零,是不应该进入下面的循环的。
可是在调试的时候,我遇到了麻烦。程序总是崩溃。经过调试,发现即使在m_OldSelElem.size()为零的情况下,我还是进入了for循环,并且在循环的第一句崩溃。这种情况不是每次都发生,有的时候,我看到程序是按照我预想的那样运行的,即:m_OldSelElem.size()为零的时候不进入for循环。
这是怎么回事呢?我不知道这是我的用法的问题,还是VC6的Bug。如果是VC的Bug,我该如何克服?