誰能告訴我爲什麼我的列表迭代器討厭.end() - 1?我想在列表結束之前迭代到一個,我的印象是,你總是可以做到這一點!上請求列表迭代器和 - 運算符的問題
std::list<Hammer::shared_ptr<Hammer::Actor>> collisionActorsList;
std::list<Hammer::shared_ptr<Hammer::Actor>>::iterator _actorUpdateIter = collisionActorsList.begin();
while(_actorUpdateIter != (collisionActorsList.end()-1)) // ERROR HERE
{
// check against every other actor
std::list<Hammer::shared_ptr<Hammer::Actor>>::iterator _otherActorsUpdateIter = _actorUpdateIter+1; // ERROR HERE TOO
while(_otherActorsUpdateIter != collisionActorsList.end())
{// SOME STUFF }
}
你能分享證明這種仇恨的代碼嗎? – Johnsyweb 2013-04-06 04:07:37
當然,它的確很複雜,但會嘗試。 – angryInsomniac 2013-04-06 04:08:36
也許你會用'--'將'-'弄糊塗。您可以遞減最後一個迭代器。 – jeffmagill 2013-04-06 04:19:51