h*******e 发帖数: 1377 | |
h*******e 发帖数: 1377 | |
S**I 发帖数: 15689 | 3 啥也不返回;STL里stack的pop函数就是这么定义的。
【在 h*******e 的大作中提到】 : rt
|
q****x 发帖数: 7404 | 4 nod. top()会崩溃吧?
【在 S**I 的大作中提到】 : 啥也不返回;STL里stack的pop函数就是这么定义的。
|
h*******e 发帖数: 1377 | 5 看了 visual studio2010的 stl。。似乎调用了 deque 里面 DEBUG_ERROR 宏。。然后
蹦出 一个 对话框。。面试时候如果考虑边界条件不能这么写吧
【在 S**I 的大作中提到】 : 啥也不返回;STL里stack的pop函数就是这么定义的。
|
i*********7 发帖数: 348 | 6 if(!stack.empty())
stack.pop()
不知道楼主想要的是不是这个?
因为如果在C++里面,stack是空的还进行pop或者top操作的话,程序会崩溃。 |
h*******e 发帖数: 1377 | 7 我在看cracking code interview阿,第三章
实现三个函数,o(1)push pop min
第一次做 没考虑太多 堆栈为空的情况。。
就是开个int数组, 然后 push pop 之后 时候 顺便计算 min
但是后来 发现我第一次写 newPop的时候
我写的函数类似
int newPop() { return arr[pos--];}
这样的函数 不规范 没考虑为空的情况
第二次又思考的时候 发现 和书上实现 java stack
不同的是.. C++/C 返回类型 如果是int 的话。。
无法判断stack 为空, 因为 没有一个类似NULL的
特殊value来 表明这个堆栈是空。。
莫非 函数是
int pop(){ if(!isEmpty()) return arr[pos --]; else;}
else 后面 为空。。。什么都不作 还是 返回异常 还是怎样阿? 还是这种 很基础
的stack 实现也必须要调用 c++ stl 的 stack来完成才标准阿。。 |
h*******e 发帖数: 1377 | 8 如果要是异常处理该怎么写啊。 。。。我的OO经验并不丰富。。 有没有牛人帮看一下
或者更好的方法。 |
h****e 发帖数: 928 | 9 Throw exception。是否处理是caller的responsibility。 |
h*******e 发帖数: 1377 | 10 谢谢你啊:)
【在 h****e 的大作中提到】 : Throw exception。是否处理是caller的responsibility。
|