Supposons que j'ai un vecteur v
et qu'il contient trois éléments: {1,2,3}
.
Y a-t-il un moyen de supprimer spécifiquement 2
du vecteur afin que le vecteur résultant devienne {1,3}
.
Supposons que j'ai un vecteur v
et qu'il contient trois éléments: {1,2,3}
.
Y a-t-il un moyen de supprimer spécifiquement 2
du vecteur afin que le vecteur résultant devienne {1,3}
.
En supposant que vous cherchez l'élément contenant la valeur 2
, pas la valeur à l'index 2
.
#include
#include
int main(){
std::vector a={1,2,3};
a.erase(std::find(a.begin(),a.end(),2));
}
(J'ai utilisé C++0x pour éviter une certaine surcharge, mais l'utilisation réelle de std::find
et vector::erase
ne nécessite pas C++0x)
N'oubliez pas d'utiliser également l'idiome effacer-supprimer si vous supprimez plusieurs éléments.
#include <iostream>
#include <vector>
using namespace std;
int main ()
{
unsigned int i;
vector myvector;
// Définir des valeurs (de 1 à 10)
for (i=1; i<=10; i++) myvector.push_back(i);
// Supprimer le 6ème élément
myvector.erase (myvector.begin()+5);
// Supprimer les 3 premiers éléments:
myvector.erase (myvector.begin(),myvector.begin()+3);
cout << "myvector contient:";
for (i=0; i
À partir de C++ 20, nous pouvons utiliser std::erase
pour supprimer plusieurs éléments.
(pas besoin de "idiome effacer-supprimer")
#include
#include
int main()
{
std::vector v{1,2,2,3,4,5};
std::erase(v, 2);
for(auto e : v) std::cout << e << " ";
std::cout << '\n';
// output: 1 3 4 5
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.