列出 Size 函数的奇怪行为

问题描述 投票:0回答:0

我有一个实现对象队列的列表。 列表有时是空的,我通过测试证实了 q.begin()==q.end() 但令人惊讶的是 q.size() 等于 1 而不是零!

为了确保,我在代码中添加了以下几行:

if (q.size()==0)
      return q.end();

if (q.begin()==q.end())
      return q.end();

第一个“if 条件”不返回,而第二个“if 条件”返回! GDB 调试器显示 _M_Size 也等于 1enter image description here 这个问题的原因是什么!

c++ gdb
© www.soinside.com 2019 - 2024. All rights reserved.