C++ 在清除之前检查向量?

C++ 在清除之前检查向量?,c++,c++11,vector,stl,stdvector,C++,C++11,Vector,Stl,Stdvector,我不确定,但我想我已经读到,只有当向量不是空的时候,才应该删除它。 所以现在我总是在删除向量之前检查: if (!vector.empty()) { vector.clear(); } 然而,我再也找不到任何关于这一步是否不必要的信息 禁止在空向量上使用清除吗?不需要检查 并降低可读性。不需要检查 并降低可读性。事实上,清除空序列或关联容器时,存在与未定义行为相关的问题,但现在已修复,调用std::vector::clear完全安全,无需事先检查std::vector是否为空。确实,清

我不确定,但我想我已经读到,只有当向量不是空的时候,才应该删除它。 所以现在我总是在删除向量之前检查:

if (!vector.empty()) {
    vector.clear();
}
然而,我再也找不到任何关于这一步是否不必要的信息


禁止在空向量上使用
清除
吗?

不需要检查


并降低可读性。

不需要检查

并降低可读性。

事实上,清除空序列或关联容器时,存在与未定义行为相关的问题,但现在已修复,调用
std::vector::clear
完全安全,无需事先检查
std::vector
是否为空。

确实,清除空序列或关联容器时出现与未定义行为相关的错误,但现在已修复,调用
std::vector::clear
完全安全,无需事先检查
std::vector
是否为空