Accueil
|_Accueil Langage C++ |_La librairie <algorithm> |_std::copy |_std::copy_backward |_std::fill |_std::for_each |
Fonction std::copy_backwardEntête à inclure#include <algorithm> Fonction std::copy_backwardtemplate <typename ITSrc, typename ITDest> ITDest std::copy_backward( ITSrc begin, ITSrc end, ITDest destination ); Cette fonction permet de copier tous (ou un partie) des éléments d'un container dans un autre. Pour que cela puisse fonctionner, les deux conteneurs (la collection source et la collection destination) doivent être "compatible STL" : en d'autres termes, ils doivent supporter le concept d'itérateurs.
La différence avec la fonction générique Paramètres
Valeur de retourCette fonction renvoie un itérateur sur le premier élément de la collection de destination. Exemple de code#include <algorithm> #include <cassert> #include <iostream> #include <iterator> #include <list> #include <string> #include <vector> using namespace std; /* std::copy_backward implementation is like this. template <typename ITS, typename ITD> inline ITD copy_backward2( ITS current, ITS end, ITD dest ) { while( current != end ) { *(--dest) = *(--current); } return dest; } */ int main() { vector<string> v; v.push_back( "C" ); v.push_back( "C++" ); v.push_back( "Objective C" ); v.push_back( "Java" ); v.push_back( "C#" ); list<string> dest; dest.resize( v.size() ); list<string>::iterator result = copy_backward( v.begin(), v.end(), dest.end() ); assert( result == dest.begin() ); for( const string & strLanguage : dest ) { cout << strLanguage << ", "; } cout << endl; return 0; }
Vous l'avez peut être remarqué, ce exemple de code présuppose que vous utilisiez un compilateur compatible avec le standard C++11 (utilisation de l'instruction Sujets connexes |
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :