Je veux imprimer le contenu d’un vecteur en C++, voici ce que j’ai :
Comment imprimer le contenu du vecteur à l’écran ?
Je veux imprimer le contenu d’un vecteur en C++, voici ce que j’ai :
Comment imprimer le contenu du vecteur à l’écran ?
Purement pour répondre à votre question, pour autant que je sais vous utilisez un itérateur:
std::vector<char> path;
// ...
for( std::vector<char>::const_iterator i = path.begin(); i != path.end(); ++i)
std::cout << *i << ' ';
Si vous souhaitez modifier le vecteur contenu dans la boucle, puis utilisez iterator
plutôt que d' const_iterator
.
Notez que ce n'est pas la seule façon que vous pouvez le faire, mais c'est probablement la "meilleure" façon de le faire la plupart du temps -- vous pouvez également utiliser un int
pour enregistrer votre position dans le vecteur, comme vous l'avez fait. Dans ce cas, vous voudrez peut-être regarder à l'aide de la fonction de membre at
au lieu de operator[]
depuis at
lèvera si vous essayez d'accéder à un poste hors de portée. Ce n'est pas un étant donné que ce qui est nécessaire, mais, vous devez penser que ce serait mieux pour que votre code à faire.
Un moyen beaucoup plus facile de le faire est avec la STL algorithme de copie:
#include <iostream>
#include <algorithm> // for copy
#include <iterator> // for ostream_iterator
#include <vector>
int main() {
/* Set up vector to hold chars a-z */
std::vector<char> path;
for (int ch = 'a'; ch <= 'z'; ++ch)
path.push_back(ch);
/* Print path vector to console */
std::copy(path.begin(), path.end(), std::ostream_iterator<char>(std::cout, " "));
return 0;
}
Le ostream_iterator est ce qu'on appelle un itérateur de l'adaptateur. Il est templatized sur le texte à imprimer pour le flux de données (dans ce cas, char
). cout
(aka sortie de la console) est le flux nous voulons écrire à, et le caractère espace (" "
) est ce que nous voulons imprimée entre chaque élément stocké dans le vecteur.
Cette STL algorithme est puissant et il en est beaucoup d'autres. La puissance et la flexibilité de la STL vous donne sont ce qui rend si grand. Imaginez: vous pouvez imprimer un vecteur de la console avec juste une ligne de code. Vous n'avez pas à traiter avec des cas particuliers avec le caractère de séparation. Vous n'avez pas besoin de s'inquiéter pour des boucles. La STL fait tout pour vous.
C ++11, vous pouvez maintenant utiliser un basé sur une plage pour la boucle:
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.