std vector erase sur un range d'éléments
Bonjour,
J'essaye de supprimer des éléments de mon vecteur sur un range donné, et les éléments supprimés sont systématiquement les x derniers du vector :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
int main(int argc, char *argv[])
{
std::vector<int> values;
//Création
for (int i=0;i<10 ;++i )
{
values.push_back(i);
}
//affichage
for (int i=0;i<values.size() ;i++ )
{
std::cout<<i<<" ";
}
std::cout<<std::endl;
std::cout<<"size au début "<<values.size()<<std::endl;
//suppression
values.erase(values.begin()+3,values.begin()+6);
//affichage
for (int i=0;i<values.size() ;i++ )
{
std::cout<<i<<" ";
}
std::cout<<std::endl;
std::cout<<"size a la fin "<<values.size()<<std::endl;
} |
Voici la sortie de ce programme sur mon pc :
Code:
1 2 3 4 5
|
0 1 2 3 4 5 6 7 8 9
size au début 10
0 1 2 3 4 5 6
size a la fin 7 |
Alors que dans mon cas je voudrais que 3,4 et 5 qui soient supprimés, selon mon code. Pourtant d'après la doc http://www.cplusplus.com/reference/vector/vector/erase/ il me semble avoir fait la bonne manip. Des idées sur la source de cette erreur ?
Merci d'avance !
Muska17