Bonjour à tous,
J'utilise des std::list pour stocker des éléments dont l'ordre est important (chaque élément est unique).
J'ai besoin de déplacer certains éléments pour les mettre en fin de liste. La seule solution que j'aie trouvée pour l'instant, c'est de rechercher l'élément à déplacer, le supprimer, puis l'ajouter en fin de liste.
Exemple de fonction qui le fait (si l'élément à déplacer n'existe pas, on se contente de l'ajouter) :
Existerait-il une méthode plus simple pour réaliser cette action ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void pushFront(Objet * MonObjet) { std::list<Objet *>::iterator i = find(ObjetList.begin(), ObjetList.end(), MonObjet); if (i != ObjetList.end()) { ObjetList.erase(i); } ObjetList.push_back(MonObjet); }
Si ça n'existe pas, est-ce qu'il est possible de créer une méthode générique avec un template (répondez-moi uniquement par oui ou non, ça me permettra de m'exercer avec les templates)
Merci d'avance pour vos réponses !
Partager