Bonjour
Voici une implémentation possible du std::swap que nous connaissons tous.
Et voici le principe de sa généralisation à n paramètres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 template<class T> void swap(T & l, T & r) { T tmp = std::move(l); l = std::move(r); r = std::move(tmp); }
Existe-t-il en standard ? (pas à ma connaissance)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 template<class T> void multiple_swap(T & v0, T & v1, ..., T & vn) { T tmp = std::move(v0); v0 = std::move(v1); v1 = ...; ... = vn; vn = std::move(tmp); }
Une idée d'implémentation généralisée ?
Pour certains algos il serait utile je pense, car pour l'instant il m'arrive d'appeler le swap standard en cascade, ce qui induit des copies évitables.
Merci![]()
Partager