c – size()Vs empty()在向量 – 为什么空()是首选?

在调试的时候,我看到了STL vector :: empty()实现:

bool empty() const
        {return (size() == 0); }

我相信,每当我们探测矢量的空虚,总是建议使用空over大小()。但看到实施,我想知道,这样做的好处是什么?相反,在调用空时有一个函数调用开销,因为它内部调用size()== 0。

我认为empty()可能在列表的情况下有用,因为size()不保证列表中的常量时间。为了验证我的假设,我检查列表实现,令人惊讶的是,在列表中找到了相同的实现,

return (size() == 0);

我现在有点困惑。如果empty内部使用size(),那么为什么我们应该更喜欢empty over size()?

你每次使用size()时都需要写出条件。使用empty()很方便。这当然是,只要你不切换容器。正如其他人已经指出的,它是实现使用size()在empty()或没有。然而,标准确定:empty()是所有的一个恒定时间操作
标准容器。
http://stackoverflow.com/questions/743197/size-vs-empty-in-vector-why-empty-is-preferred

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c – size()Vs empty()在向量 – 为什么空()是首选?