gpt4 book ai didi

c++ - vector 中的 size() 与 empty() - 为什么首选 empty()?

转载 作者:IT老高 更新时间:2023-10-28 12:38:05 25 4
gpt4 key购买 nike

在调试某些东西时,我看到了 STL vector::empty() 实现:

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

我相信,每当我们探测 vector 的空性时,总是建议使用空而不是 size()。但是看到这个实现,我想知道,这样做有什么好处?相反,在调用 empty 时会产生函数调用开销,因为它在内部调用 size()==0。

我认为 empty() 在列表的情况下可能会有所帮助,因为 size() 不能保证列表中的恒定时间。为了验证我的假设,我检查了列表实现,令人惊讶的是,在列表中也发现了相同的实现,

return (size() == 0);

我现在有点困惑。如果 empty 内部使用 size() 那么我们为什么更喜欢 empty 而不是 size() ?

最佳答案

因为如果从 std::vector 切换到 std::list 或者其他容器,可能会不一样。

例如 std::list::size 的一些实现拍O(n)而不是 O(1) .

关于c++ - vector 中的 size() 与 empty() - 为什么首选 empty()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/743197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com