Mon programme lit donc simplement une entrée de nombres et les liste dans l'ordre. Comme vu dans la sortie. Sans l'utilisation de la bibliothèque de l'algorithme, je l'ai trié et se débarrasser des données répétées. Cependant, si une valeur de données est répétée, la dernière valeur du vecteur n'est pas imprimée. Est-ce que j'utilise incorrectement le .erase?Erreur logique en utilisant .erase (C++)
void remove_repeated(int size, vector<int>& num_vec){
for(int i = 0; i < num_vec.size(); i++){
if(num_vec[i]==num_vec[i+1]){
num_vec.erase((num_vec.begin()+i));
}
}
}
sortie lorsqu'aucune valeur est répétée:
**Welcome to the HW Reading Program**
Please, enter your HW:1-10
Do Problems: 1, 2, 3, 4, 5, 6, 7, 8, 9,and 10
sortie lorsqu'une valeur est répétée:
**Welcome to the HW Reading Program**
Please, enter your HW: 1-10,1-3
Do Problems: 1, 2, 3, 4, 5, 6, 7, 8,and 9
A) MVCE B) Fixez votre indentation. TIA. – Borgleader
C'est beaucoup de code non pertinent que vous avez posté. Vous pourriez avoir juste posté un simple programme 'main', remplir un vecteur avec des valeurs codées en dur répétées, et simplement appeler' remove_repeated' pour voir comment ça fonctionne. Le tri n'a rien à voir avec le problème que vous rencontrez. – PaulMcKenzie
@Borgleader A) Je l'ai réparé au mieux de mes capacités. B) Quelle partie de mon indentation n'est pas acceptable? – Pouya