diff�rence entre it�rateurs et operator[]
Bonjour,
Pour mon projet, j'ai besoin de recuperer un "block" a une position donn�e et v�rifier son Type.
J'ai donc fais ce code :
Code:
1 2 3 4 5 6 7
| if (pos < this->map.size())
{
Block *tmp = map[pos];
if (tmp->getTypeBlock() != EMPTY && tmp->getTypeBlock() != EXPLOSION)
return false;
}
return true; |
Normalement mon programme devrait rentrer dans le "if " mais il ne le fait pas.
J'ai test� ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
std::vector<Block *>::iterator it = this->map.begin();
while (it != this->map.end())
{
type = (*it)->getTypeBlock();
if (type != EMPTY && type != EXPLOSION)
{
block_x = (*it)->getX();
block_y = (*it)->getY();
if (block_y == y && block_x == x)
break;
}
++it;
}
return (true); |
Mon programme passe dans le if.
J'ai donc print les positions en x et en y de mon "block" pour les deux versions du code, se sont les m�mes.
J'ai donc pour deux versions le m�me block mais avec un "Type" diff�rent en fonction du type d'approche que j'ai (it�rateurs et []).
Je ne vois pas d'ou �a peut venir... Une id�e ?
Merci d'avance.