,关于一个奇怪的标准模板类库的有关问题

求助,关于一个奇怪的标准模板类库的问题
环境:win7+VS08
代码:
A.h文件中内容如下:
class PathEntryPointWithProb
{...
}
class A
{
    std::vector<PathEntryPointWithProb> m_vPathEntryPointList;
}
A.cpp文件中内容如下:
...
bool lesser ( const std::vector<PathEntryPointWithProb>::iterator elem1,const std::vector<PathEntryPointWithProb>::iterator elem2 )//定义了一个比较函数,全局的
{
return elem1->QueryEval()<elem2->QueryEval();
}
int A::CalCulateBestAngleConsiderProb(bool LeftForbidden,bool RightForbidden)
{
...
m_it_BestPathPoint=std::min(m_vPathEntryPointList.begin(),m_vPathEntryPointList.end(),lesser);//我要找出m_vPathEntryPointList里头的最小单元,比较标准用的是前面定义的lesser 函数
...
}
编译、连接正常
运行错误,运行到min函数处出错。
报错为:vector iterator not dereferencable
堆栈指针,指向错误到了我定义的 lesser 函数
经观察如下发现:
1.m_vPathEntryPointList中只有两个成员,错误处却显示elem1指向的成员是个乱值,
即elem1应已指向超出了,m_vPathEntryPointList.end()的范围。
求助各位。怎么回事。非常古怪。
C++ iterator vector min

------解决方案--------------------
楼主调用的min应该是
template< class T, class Compare >
const T& min( const T& a, const T& b, Compare comp );

返回两个值中较小者!

m_vPathEntryPointList.end(), 指向的是最后一个元素后面的一个!
所以是不能解引用的!