C++ stl List,该如何处理

C++ stl List
void CALLBACK Orbit::TimerProc(HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)
{
(*g_itOrbitList).cpNow=*((*g_itOrbitList).iter_LinkList[0]);
if(g_OrbitList.begin()!=NULL)
{
(*g_itOrbitList).iter_LinkList[0]++;
if((*g_itOrbitList).iter_LinkList[0]==(*g_itOrbitList).Orbit_LinkList.end())/*此处*/
{
(*g_itOrbitList).iter_LinkList[0]=(*g_itOrbitList).Orbit_LinkList.begin();
(*g_itOrbitList).iter_LinkList[0]++;
}
}
}

为什么,此处判断不能相等?
其中g_itOrbitList,iter_LinkList[0]是<iterator>,Orbit_LinkList是<List>



------解决方案--------------------
弄不清这一大堆符号里的意义。
一般的判断是这样的:
typedef list<int> ListInt;
ListInt list_int;
ListInt::iterator it = ...;
if (it != list_int.end())
 ...