iterator 实现 如何 peek(),pop()?# JobHunting - 待字闺中h*o2013-01-21 08:011 楼比如A={1,2,3,4,5};peek()=1;pop()=1;peek()=2;pop()=2;peek()=3;.........
j*y2013-01-21 08:012 楼怎么 定义 peek(), pop() 阿stack 里面的 pop()吗? peek 和 stack里面的 top()是一样的吗?【在 h*********o 的大作中提到】: 比如: A={1,2,3,4,5};: peek()=1;: pop()=1;: peek()=2;: pop()=2;: peek()=3;.........
h*o2013-01-21 08:014 楼嗯,看例子应该是跟stack的一样的,peek()就是top【在 j*****y 的大作中提到】: 怎么 定义 peek(), pop() 阿: stack 里面的 pop()吗? peek 和 stack里面的 top()是一样的吗?
t*h2013-01-21 08:015 楼have a tmp variable to next element?【在 h*********o 的大作中提到】: 比如: A={1,2,3,4,5};: peek()=1;: pop()=1;: peek()=2;: pop()=2;: peek()=3;.........
j*y2013-01-21 08:016 楼这个 iterator 的 api怎么用呢 ?似乎像是一个 stack, 但是 stack是没有 iterator的,可以用一个 vector来存储, vector 可以 push_back 和 pop_back这两个类似于 stack的 push 和 pop有点confuse不知道如何call iterator 来 pop 和push难道是说, 假设有个 iterator it, 我们可以callit->peek(), it->pop() ?【在 t*********h 的大作中提到】: have a tmp variable to next element?
h*o2013-01-21 08:018 楼不知道是不是stack啊,给的例子就是这样,像是数组啥的。。【在 j*****y 的大作中提到】: 这个 iterator 的 api怎么用呢 ?: 似乎像是一个 stack, 但是 stack是没有 iterator的,: 可以用一个 vector来存储, vector 可以 push_back 和 pop_back: 这两个类似于 stack的 push 和 pop: 有点confuse不知道如何call iterator 来 pop 和push: 难道是说, 假设有个 iterator it, 我们可以call: it->peek(), it->pop() ?
p*22013-01-21 08:019 楼class Iterator[T](arr:Array[T]){private[this] var pos=0def peek()={if(pos}def pop()={if(pos}def reset(){pos=0}}object test2 extends App {val arr=Array(1,2,3,4,5)val it=new Iterator(arr)println(it.peek())println(it.pop())println(it.peek())println(it.pop())println(it.peek())println(it.pop())}
j*y2013-01-21 08:0110 楼二爷这个iterator 和 stack 好像是一样的?class iterator == class stack ?【在 p*****2 的大作中提到】: class Iterator[T](arr:Array[T]){: private[this] var pos=0: def peek()={: if(pos: }: : def pop()={: if(pos: }:
p*22013-01-21 08:0111 楼iterator 是immutable的吧?【在 j*****y 的大作中提到】: 二爷这个iterator 和 stack 好像是一样的?: class iterator == class stack ?
j*y2013-01-21 08:0114 楼这样的话,你这里的 iterator 也提供了 pop()操作,也是改变了,是吧?【在 p*****2 的大作中提到】: : 我记得只能iterate不能改变吧
j*y2013-01-21 08:0116 楼明白了,你的这个 iterator就是一个没有 push操作的 stack, 是吧?【在 p*****2 的大作中提到】: : 数组没有被改变。还可以reset
p*22013-01-21 08:0117 楼感觉iterator和stack还不是一回事。不过这个题目的定义比较confusing应该是hasNext, next比较好。【在 j*****y 的大作中提到】: 明白了,你的这个 iterator就是一个没有 push操作的 stack, 是吧?
c*t2013-01-21 08:0118 楼同意,这道题里面pop和iterator next 感觉是一样的,没必要实现。不过你用array来实现,感觉不合题意吧。我觉得extend Iterator,overwrite nexthasNext, remove, add pop and peek methods是正解。【在 p*****2 的大作中提到】: : 感觉iterator和stack还不是一回事。: 不过这个题目的定义比较confusing: 应该是hasNext, next比较好。