gpt4 book ai didi

c++ - 检查 vector 是否为空

转载 作者:IT老高 更新时间:2023-10-28 12:32:01 36 4
gpt4 key购买 nike

假设我有一个 std::vectorVector

现在对 vector 执行一些操作(插入或删除)后,我想检查 vector 是否为空,并在此基础上执行一些操作。

哪种方法更好

方法 1

if (Vector.size() == 0){ /* operations */ }

方法 2

if (Vector.empty()) { /* operations */ }

1 还是 2 哪个更好?

最佳答案

v.size() == 0 说“我正在比较大小”,但这样做是为了检查容器是否为空。在你知道它做了什么之前,有一个小算法需要消化(非常小,因为它只包含一个比较)。
OTOH,v.empty() 完全按照它所说的去做:它检查 v 是否为空。
因此,我显然更喜欢#2,因为它确实如其所说。毕竟,这就是发明 empty() 的原因。

但也有一个算法上更喜欢 empty() 的原因:如果有人稍后将 std::vector 更改为 std::list , v.size() 可能有 O(n)。 (在 C++ 03 中,std::vector 保证为 O(1),但对于 std::list 则不然。根据 James 对 Prasoon's answer 的评论对于 C++1x 中的 所有 容器,将是 O(1)。)

关于c++ - 检查 vector 是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3863282/

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