我不确定,但我想我已经读过,如果向量不为空,则只应删除它。因此,现在我总是在删除向量之前进行检查:
if (!vector.empty()) { vector.clear(); }
但是,我再也找不到关于此步骤是否必要的任何信息。
是否禁止在空向量上使用clear?
clear
不需要支票,
并降低IMO的可读性。>
确实,有一个issue与未定义的行为有关,同时清除了一个空序列或关联容器,但是现在已修复,并且在以前检查std::vector::clear without
std::vector::clear