C++的STL容器栈使用细节
今天解一道算法题,用到了C++ STL中的栈,debug时发现了只要当栈空时,这时执行到查询栈顶或者弹出栈顶元素时,程序会中断:
比如下面:
当合并时,变成if(S.top()||S.empty() ){ .. } 程序可能会中断,提前结束;
当然这么写 if( S.empty() || S.top() ){ .. } 可能可以,但建议还是不要,容易出错
今天解一道算法题,用到了C++ STL中的栈,debug时发现了只要当栈空时,这时执行到查询栈顶或者弹出栈顶元素时,程序会中断:
比如下面:
当合并时,变成if(S.top()||S.empty() ){ .. } 程序可能会中断,提前结束;
当然这么写 if( S.empty() || S.top() ){ .. } 可能可以,但建议还是不要,容易出错