坏习惯:用容器的size作为循环终止条件

94 阅读1分钟
今天在写一个需要用到栈的数据结构时,一条循环语句用了stack.size()作为终止条件,结果不符合预期(其实已经遇过很多次了,这是现在才记录下来~),如下图:

其实很好看出什么问题,循环内部会对stack进行pop操作,stack.size并不能保证不变。同理可以拓展到其他容器,最好不要用容器的size作为循环的终止条件。

解决: 将size值保存到一个独立的变量中。

如图: