Comment puis-je imprimer un std::vector
? Par exemple, si je construis un std::vector(6, 1)
, que puis-je exécuter pour obtenir un résultat tel que {1 1 1 1 1 1}
en C ++? Il doit être générique car la taille et la valeur peuvent changer, donc std::vector(4, 0)
serait {0 0 0 0}
.
#include #include #include template std::ostream & operator<<(std::ostream & os, std::vector vec) { os<<"{ "; std::copy(vec.begin(), vec.end(), std::ostream_iterator (os, " ")); os<<"}"; return os; }
alors vous pouvez afficher vos vecteurs avec la syntaxe d' operator<<
normal operator<<
:
std::cout<
vous pouvez voir cela en action ici .
Mais pour des solutions plus flexibles, jetez un œil à la question ci-dessus .
Edit: si vous ne voulez pas les deux espaces (au début et à la fin):
template std::ostream & operator<<(std::ostream & os, std::vector vec) { os<<"{"; if(vec.size()!=0) { std::copy(vec.begin(), vec.end()-1, std::ostream_iterator (os, " ")); os<