C++ C++;-';std::超出范围';

C++ C++;-';std::超出范围';,c++,outofrangeexception,C++,Outofrangeexception,虽然我已经将try代码包装到程序的每个部分,但我无法获得导致运行时错误的行(没有任何其他详细信息): 我不知道我该怎么做。 该错误是由以下代码引起的,因为它出现在添加这些行之后: ..... map<int, StaticObject*>::iterator mapPos2; vector<StaticObject*, boost::pool_allocator<StaticObject*> >::iterator vecPos; map<int, i

虽然我已经将try代码包装到程序的每个部分,但我无法获得导致运行时错误的行(没有任何其他详细信息):

我不知道我该怎么做。 该错误是由以下代码引起的,因为它出现在添加这些行之后:

.....
map<int, StaticObject*>::iterator mapPos2;
vector<StaticObject*, boost::pool_allocator<StaticObject*> >::iterator vecPos;

map<int, int>::iterator mapPos = userCountMap.begin();  

mapPos2 = this->_cachedObjects.find(this->_lruQueue.at(mapPos->first)->getId());                   
vecPos = find(this->_lruQueue.begin(),this->_lruQueue.end(), this->_lruQueue.at(mapPos->first));

size -= this->_lruQueue.at(mapPos->first)->getSize();  
_availableSpace += this->_lruQueue.at(mapPos->first)->getSize(); 

delete (*mapPos2).second;   

this->_cachedObjects.erase(mapPos2); 
this->_lruQueue.erase(vecPos);  
............
。。。。。
迭代器mapPos2;
向量::迭代器vecPos;
迭代器mapPos=userCountMap.begin();
mapPos2=this->\u cachedObjects.find(this->\u lruQueue.at(mapPos->first)->getId());
vecPos=find(this->\u lruQueue.begin()、this->\u lruQueue.end()、this->\u lruQueue.at(mapPos->first));
size-=this->_lruQueue.at(mapPos->first)->getSize();
_availableSpace+=this->u lruQueue.at(mapPos->first)->getSize();
删除(*mapPos2);
此->\u cachedObjects.erase(mapPos2);
此->\u lruQueue.erase(vecPos);
............
后来:

map<int, int> userCountMap;

userCountMap.insert(make_pair(object->getId(),1)); ...
this->userCountMap[id]++; ...
this->userCountMap.clear(); ....
map-userCountMap;
insert(生成配对(object->getId(),1))。。。
此->userCountMap[id]+。。。
此->userCountMap.clear()。。。。

如果索引超出有效值的范围(即
[0..size-1]
),则
std::vector::at
将抛出
std::out_of_range


尝试用
Try/catch
块包装调用该函数的行,并查看哪个块抛出。然后,启动调试器,找出索引超出范围的原因。

-1此异常和跟踪(调试)抛出索引的点不清楚??
map<int, int> userCountMap;

userCountMap.insert(make_pair(object->getId(),1)); ...
this->userCountMap[id]++; ...
this->userCountMap.clear(); ....