C++ STL 列表 Size 函数的奇怪行为

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

我有一个实现对象队列的 STL 列表。 STL 列表有时是空的,我通过测试“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++ list stl gdb size
© www.soinside.com 2019 - 2024. All rights reserved.