什么更有效:vector.clear()或if(vector.empty())clear();?

时间:2013-09-03 14:42:12

标签: c++ std

正如主题所述..哪个版本更有效,为什么?

std::vector a;
..

a.clear();

std::vector a;
..
if(!a.empty())
  a.clear();

2 个答案:

答案 0 :(得分:12)

除了效率之外,您设法在这个小片段中写入错误这一事实证明第一个版本远远优于其他版本。代码越复杂越好。

答案 1 :(得分:2)

空向量是有效向量。所以操作

a.clear();

对空矢量有效。

在清除之前测试空虚是不必要和耗时的,因此第一个更有效。