J'ai essayé avec ce morceau de code, mais cela n'a pas fonctionnéPour écrire une fonction qui imprime chaque élément d'un vecteur STL malgré le type
template <class T>
void display(vector<T> vec)
{
vector<T>::iterator MyIter;
for(MyIter=vec.begin();MyIter!=vec.end();MyIter++)
cout<<*MyIter<<" ";
cout<<endl;
}
Je veux dire que s'il y a un moyen d'éviter de faire une fonction pour chaque type T (int, char, string). J'utilise seulement les types de T. builtin
Ceci est le message d'erreur lorsque je compile le programme
10 C:\Documents and Settings\ASPIRE\Desktop\perms.cpp expected `;' before "MyIter"
pourquoi est ++ Myiter plus efficace? – rfrm
Parce que l'autre formulaire doit faire un appel de constructeur de copie supplémentaire afin de renvoyer la valeur correcte. Vérifiez les déclarations d'incrément de préfixe et de suffixe dans votre fichier d'en-tête. Voir aussi la réponse de duffymo ici: http://stackoverflow.com/questions/1812990/incrementing-in-c-when-to-use-x-or-x –
btw, passer le vecteur en valeur est cher. Utilisez plutôt 'const vector & vec'. –