【问题标题】:Check a vector before clear?在清除之前检查矢量?
【发布时间】:2020-06-05 18:13:02
【问题描述】:

我不确定,但我想我已经读过你应该只删除一个不为空的向量。 所以现在我总是在删除向量之前检查:

if (!vector.empty()) {
    vector.clear();
}

但是,我不再发现有关此步骤是否不必要的任何信息。

是否禁止在空向量上使用clear

【问题讨论】:

    标签: c++ c++11 vector stl stdvector


    【解决方案1】:

    检查是不需要的,

    并降低 IMO 的可读性。

    【讨论】:

      【解决方案2】:

      确实,在清除空序列或关联容器时,有一个与未定义行为相关的 issue,但现在已修复此问题,调用 std::vector::clear 非常安全没有之前检查std::vector是否为空。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-03
        • 1970-01-01
        • 2019-07-16
        • 2013-05-30
        相关资源
        最近更新 更多