[C++] Programme sur un conteneur set
Paddington Brown
-
Paddington Brown -
Paddington Brown -
Bonjour à tous !
Je commence à programmer en C++ (sous Windows, avec DevC++) et j'aurais besoin de votre aide.
J'ai créé un petit programme avec un conteneur Set.
En gros, j'insère des valeurs dans ce conteneur, et je les affiche sur le terminal.
Voici le code source de mon programme.
Et voici ce que ça donne, lorsque je lance le programme exécutable :
-3, 2, 4, 5, 7, 10, 12, 18, 35, 54, 0
Appuyez sur une touche pour continuer...
Je voudrais simplement savoir comment éliminer le zéro dans la liste.
Merci d'avance. :-)
Je commence à programmer en C++ (sous Windows, avec DevC++) et j'aurais besoin de votre aide.
J'ai créé un petit programme avec un conteneur Set.
En gros, j'insère des valeurs dans ce conteneur, et je les affiche sur le terminal.
Voici le code source de mon programme.
#include <iostream> #include <set> int test(const std::set<int> & pi) { std::set<int>::const_iterator it = pi.begin(); while(it != pi.end()) { std::cout << *it; std::cout << ", "; it++; } } void affichage() { std::set<int> entiers; entiers.insert(2); entiers.insert(10); entiers.insert(18); entiers.insert(7); entiers.insert(12); entiers.insert(35); entiers.insert(54); entiers.insert(7); entiers.insert(2); entiers.insert(-3); entiers.insert(5); entiers.insert(4); std::cout << test(entiers) << std::endl; } /* Un conteneur set élimine les éléments doublons, et classe les éléments par ordre croissant */ int main() { test(); system("Pause"); return 0; }
Et voici ce que ça donne, lorsque je lance le programme exécutable :
-3, 2, 4, 5, 7, 10, 12, 18, 35, 54, 0
Appuyez sur une touche pour continuer...
Je voudrais simplement savoir comment éliminer le zéro dans la liste.
Merci d'avance. :-)
A voir également:
- [C++] Programme sur un conteneur set
- Set-top box - Accueil - Box & Connexion Internet
- Programme demarrage windows - Guide
- Mettre en veille un programme - Guide
- Desinstaller un programme sur windows - Guide
- Forcer la fermeture d'un programme - Guide
1 réponse
Je suppose que dans le 'main', la fonction appellée est 'affichage' et non 'test'.
Si tu ne veux pas que le zéro s'affiche, il ne faut pas lui demander de l'afficher!
Donc 'std::cout << test(entiers)' est à supprimer.
N'as-tu pas remarqué que ton compilateur râle un peu? La fonction 'test' est déclarée 'int' et ne retourne... rien! En effet elle n'a rien à retourner, donc la déclarer 'void' et remplacer l'appel tordu 'std::cout << test(entiers)' par 'test(entiers), ce qui donne (j'ai inversé le nom des fonctions car c'est test qui affiche).
Si tu ne veux pas que le zéro s'affiche, il ne faut pas lui demander de l'afficher!
Donc 'std::cout << test(entiers)' est à supprimer.
N'as-tu pas remarqué que ton compilateur râle un peu? La fonction 'test' est déclarée 'int' et ne retourne... rien! En effet elle n'a rien à retourner, donc la déclarer 'void' et remplacer l'appel tordu 'std::cout << test(entiers)' par 'test(entiers), ce qui donne (j'ai inversé le nom des fonctions car c'est test qui affiche).
#include <iostream> #include <set> void affichage (const std::set<int> & pi) { std::set<int>::const_iterator it = pi.begin(); while(it != pi.end()) { std::cout << *it; std::cout << ", "; it++; } std::cout << std::endl; } void test() { std::set<int> entiers; entiers.insert(2); entiers.insert(10); entiers.insert(18); entiers.insert(7); entiers.insert(12); entiers.insert(35); entiers.insert(54); entiers.insert(7); entiers.insert(2); entiers.insert(-3); entiers.insert(5); entiers.insert(4); affichage(entiers); } /* Un conteneur set élimine les éléments doublons, et classe les éléments par ordre croissant */ int main() { test(); system("Pause"); return 0; }
Merci de votre réponse, ça fonctionne à merveille ! :-)
Bonne fin d'après-midi à vous.
Paddington Brown.