10

下面的代码可以接受吗?

if(vector.size() > 0 && vector[0] == 3) {
}

或者当向量为空时它是否有可能崩溃?我没有注意到这种情况发生,但我担心它仍然是可能的。

4

2 回答 2

14

是的,您可以依靠内置运算符&&进行短路。这是其规范的一部分。

于 2012-12-20T21:29:30.013 回答
11

是的,这行得通,但更习惯地说!vector.empty() && vector[0] == 3:这将适用于所有容器,效率最高,所以它永远不会更糟,有时更好,而且总是更具可读性。

于 2012-12-20T21:31:12.823 回答