Comment parcourir la pile en C++?
Est-il possible de traverser std::stack
en C++?
De la traversée de l'aide en suivant la méthode n'est pas applicable. Parce que std::stack
n'a pas de membre end
.
std::stack<int> foo;
//..
for (__typeof(foo.begin()) it = foo.begin(); it != foo.end(); it++)
{
//...
}
C'est pourquoi elle est une "pile". Last in first out, c'est (théoriquement).
double possible de std::stack exposer les itérateurs?
Vous avez choisi le mauvais type de données. N'utilisez pas une pile si vous voulez être en mesure d'effectuer une itération sur elle.
double possible de std::stack exposer les itérateurs?
Vous avez choisi le mauvais type de données. N'utilisez pas une pile si vous voulez être en mesure d'effectuer une itération sur elle.
OriginalL'auteur Silap Aliyev | 2014-04-21
Vous devez vous connecter pour publier un commentaire.
Pas. Une pile est une structure de données que vous devez utiliser lorsque vous êtes intéressé à placer des éléments sur le dessus et d'obtenir les éléments de la partie supérieure. Si vous voulez un objet iterable pile, soit utiliser une autre structure de données pour une pile de rôle (
std::vector
?) ou écrivez-en un vous-même.OriginalL'auteur utnapistim
Je ne pas pense qu'il est possible de parcourir à travers un pile. Le mieux est, je pense, à l'aide de vecteur à l'aide de
std::vector
à l'aide depush_back(), pop_back()
La pile ne fournit pas de début ou de fin de fonction de membre de sorte que vous ne pouvez pas l'utiliser avec un basé sur la plage pour la boucle qui nécessite à la fois.
Dans votre cas, il serait préférable de choisir une autre structure de données si vous voulez vraiment itérer dessus.
OriginalL'auteur Rahul Tripathi
Comme vous l'avez mentionné vous avez besoin d'impression à des fins de débogage, peut-être quelque chose comme ça pourrait fonctionner pour vous:
Sortie est, comme prévu, "9 11"
OriginalL'auteur A. Knorre
Nous ne pouvons pas traverser la pile. Les piles sont un type de conteneur adaptateur spécialement conçu pour fonctionner dans un LIFO contexte (last-in first-out), où les éléments sont insérés et extraits uniquement à partir de l'une des extrémités du récipient. Les éléments sont poussés/sauté du "retour" du conteneur spécifique, qui est connu comme le sommet de la pile. Il n'est pas prévu pour pile à montrer ce comportement, pour cela, nous avons d'autres conteneurs
OriginalL'auteur DNamto
http://en.cppreference.com/w/cpp/container/stack
OriginalL'auteur Corvusoft
Vous pouvez faire une boucle for:
OriginalL'auteur Shaun Wang