C++中list队列有关问题,迭代时将begin换成rbegin就有错

C++中list队列问题,迭代时将begin换成rbegin就有错
情况是这样的:
----------------------------------------
在vs2008中的vc工程中,声明个迭代器
list<CString>::iterator iii;
然而从前面迭代:
for(iii=g_latlngQueue.begin();iii!=g_latlngQueue.end();iii++)
{
}
没有问题,下面从后面迭代编译通过不了,
for(iii=g_latlngQueue.rbegin();iii!=g_latlngQueue.rend();iii++)
{
}
报:
错误 1 error C2678: 二进制“!=”: 没有找到接受“std::list<_Ty>::_Iterator<_Secure_validation>”类型的左操作数的运算符(或没有可接受的转换) j:\clientgpsandserverdlg.cpp 41 clientgpsandserver
---------------------------------------
大家有没有碰到这样的问题呢?

------解决方案--------------------
list<CString>::reverse_iterator ii;
for(ii = g_latlngQueue.rbegin(); ii != g_latlngQueue.rend(); ++ii)
{
AfxMessageBox(*ii);
}