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