【发布时间】:2013-04-19 10:57:45
【问题描述】:
我想检查一个向量,看看它是否至少有一个元素。哪个更快?
if (vec.size()) {
...
}
或
if (vec) {
...
}
有没有更好的解决方案?
【问题讨论】:
-
“if(vec)”真的有效吗?!
-
后者无法编译,vector 没有隐式转换为布尔上下文中可接受的任何内容。 (@Kamouth:不,不是)
-
无论如何,任何方式都可能超快。但是
!std::vector::empty()清楚地表明了您的意图,因此是最佳选择。 -
同意,并且在某些容器上,empty() 实际上会更快,并且随着程序的发展更改容器的类型并不少见。
标签: c++ performance vector