由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问一下STL里的queue, and stack 遍历的问题 (转载)
相关主题
deque的pointer和reference是怎么回事?问一个有关C++里面list的问题。
stl container erase in a loop关于inserter
C++ vector 一边遍历一边删一个C++的概念问题
c++ template question:讨论 找单链表倒数m的节点 (转载)
stl的一个问题stl iterator has "NULL" like const?
请教用c++读取large file怎么可以快一些?STL感觉实在太变态了
Question on C++ Access Control (protected)a question about std::stack
Question about vector as a class memberhow to write a function take iterators as parameters?
相关话题的讨论汇总
话题: queue话题: stack话题: container话题: adaptor话题: stl
进入Programming版参与讨论
1 (共1页)
w****o
发帖数: 2260
1
【 以下文字转载自 JobHunting 讨论区 】
发信人: winhao (勇敢的人), 信区: JobHunting
标 题: 问一下STL里的queue, and stack 遍历的问题
发信站: BBS 未名空间站 (Sun Mar 4 02:36:31 2012, 美东)
好像std里queue 和stack的实现没有提供iterator,怎么遍历呢?就是说怎么查看queue
,stack里的elements?
感觉没法弄。比如queue,除非把queue给弄散了,一个一个的 front(), pop(),来查看
里面的东西,可是这样的话,queue就给破坏了。
stack也有同样的问题。
谁给说说有什么好的方法?难道要自己新创造一个实现?
谢谢!
t****t
发帖数: 6806
2
why do you want to use queue/stack in the first place, if you don't need a
queue or stack?
in other words, queue and stack are supposed to visited FIFO or LIFO. if you
want iterator, use deque or vector; they have all the functions of queue or
stack, while having iterators.

queue

【在 w****o 的大作中提到】
: 【 以下文字转载自 JobHunting 讨论区 】
: 发信人: winhao (勇敢的人), 信区: JobHunting
: 标 题: 问一下STL里的queue, and stack 遍历的问题
: 发信站: BBS 未名空间站 (Sun Mar 4 02:36:31 2012, 美东)
: 好像std里queue 和stack的实现没有提供iterator,怎么遍历呢?就是说怎么查看queue
: ,stack里的elements?
: 感觉没法弄。比如queue,除非把queue给弄散了,一个一个的 front(), pop(),来查看
: 里面的东西,可是这样的话,queue就给破坏了。
: stack也有同样的问题。
: 谁给说说有什么好的方法?难道要自己新创造一个实现?

w****o
发帖数: 2260
3
谢谢!
1. 其实吧,在看别人的代码,想加点自己的代码,试些东西,他们用了queue,我想在
某个特定的情况下,想看一下到底queue放了些什么东西,或者是想看看里面有没有满
足某些条件的元素。
2. 你说的对,vector, deque都有iterator,如果要方便的话,就用这些好了。
还有,我得出了结论,stl里的container并不是每个都有iterator的。
谢谢啦!

you
or

【在 t****t 的大作中提到】
: why do you want to use queue/stack in the first place, if you don't need a
: queue or stack?
: in other words, queue and stack are supposed to visited FIFO or LIFO. if you
: want iterator, use deque or vector; they have all the functions of queue or
: stack, while having iterators.
:
: queue

t****t
发帖数: 6806
4
all containers have iterator, because it's a requirement for container.
queue, stack, priority_queue are not container, but rather container ADAPTOR
. (23.4)
to check container adaptor contents w/o modifying program, use debugger.
to check container adaptor contents w/ modifying program, you can:
(1) write a class to inherit the adaptor. All adaptors have a protected
member "c" which is the actual container.
(2) use the container to replace the adaptor, and replace the push(), pop()
etc with your own code -- they are one-liners anyway.

【在 w****o 的大作中提到】
: 谢谢!
: 1. 其实吧,在看别人的代码,想加点自己的代码,试些东西,他们用了queue,我想在
: 某个特定的情况下,想看一下到底queue放了些什么东西,或者是想看看里面有没有满
: 足某些条件的元素。
: 2. 你说的对,vector, deque都有iterator,如果要方便的话,就用这些好了。
: 还有,我得出了结论,stl里的container并不是每个都有iterator的。
: 谢谢啦!
:
: you
: or

c****p
发帖数: 6474
5
笨办法就是想看queue的时候再弄个queue,想看栈的时候再弄个栈。。。

ADAPTOR
)

【在 t****t 的大作中提到】
: all containers have iterator, because it's a requirement for container.
: queue, stack, priority_queue are not container, but rather container ADAPTOR
: . (23.4)
: to check container adaptor contents w/o modifying program, use debugger.
: to check container adaptor contents w/ modifying program, you can:
: (1) write a class to inherit the adaptor. All adaptors have a protected
: member "c" which is the actual container.
: (2) use the container to replace the adaptor, and replace the push(), pop()
: etc with your own code -- they are one-liners anyway.

h**********c
发帖数: 4120
6
deque
h*******s
发帖数: 8454
7
我每次想用queue的时候,最后好像都用了deque。。。

【在 c****p 的大作中提到】
: 笨办法就是想看queue的时候再弄个queue,想看栈的时候再弄个栈。。。
:
: ADAPTOR
: )

w****o
发帖数: 2260
8
谢谢了!你是牛人。

【在 t****t 的大作中提到】
: all containers have iterator, because it's a requirement for container.
: queue, stack, priority_queue are not container, but rather container ADAPTOR
: . (23.4)
: to check container adaptor contents w/o modifying program, use debugger.
: to check container adaptor contents w/ modifying program, you can:
: (1) write a class to inherit the adaptor. All adaptors have a protected
: member "c" which is the actual container.
: (2) use the container to replace the adaptor, and replace the push(), pop()
: etc with your own code -- they are one-liners anyway.

1 (共1页)
进入Programming版参与讨论
相关主题
how to write a function take iterators as parameters?stl的一个问题
c++ interview: iterator 和 pointer区别?请教用c++读取large file怎么可以快一些?
c++ pointers are iterators, why?Question on C++ Access Control (protected)
算法题, 排序(queue)Question about vector as a class member
deque的pointer和reference是怎么回事?问一个有关C++里面list的问题。
stl container erase in a loop关于inserter
C++ vector 一边遍历一边删一个C++的概念问题
c++ template question:讨论 找单链表倒数m的节点 (转载)
相关话题的讨论汇总
话题: queue话题: stack话题: container话题: adaptor话题: stl