在调试某些东西时,我看到了 STL vector::empty() 实现:
bool empty() const
{return (size() == 0); }
我相信,每当我们探测向量的空性时,总是建议使用空的大小()。但是看到这个实现,我想知道,这样做有什么好处?相反,在调用 empty 时会产生函数调用开销,因为它在内部调用 size()==0。
我认为 empty() 在列表的情况下可能会有所帮助,因为 size() 不能保证列表中的恒定时间。为了验证我的假设,我检查了列表实现,令人惊讶的是,在列表中也发现了相同的实现,
return (size() == 0);
我现在有点困惑。如果 empty 内部使用 size() 那么我们为什么更喜欢 empty 而不是 size() ?