Driver::~Driver()
{
AutoCritSec acsDriverList(m_csDriverList,true);
DRIVERLIST::iterator it = m_DriverList.begin();
for(;it!=m_DriverList.end();it++)
{
if (it->second == this)
{
m_DriverList.erase(it);
it = m_DriverList.begin();
}
}
}
我在Visual Studio 2003中编译我的程序时,程序运行良好。但是当我在2010中进行相同的操作时,在关闭应用程序时会出现一些错误。
Expression:map/set iterator not incrementable
当我按下忽略时,我得到
Expression:"standard c++ library out of range" && 0
有没有人知道这里发生了什么:如果有人有任何建议,我将非常感激。万分感谢和热情祝福。
erase
返回下一个元素的迭代器(如果没有下一个元素,则返回结束时的迭代器),Visual C++ 2010支持此功能。 - James McNellis