我可以依靠短路评估来检查向量界在c++

Can I rely on short-circuit evaluation to check vector bounds in C++?

本文关键字:向量 c++ 检查 依靠 短路 评估 我可以      更新时间:2023-10-16

以下代码可以接受吗?

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

或者当vector为空时是否有可能崩溃?我没有注意到这种情况,但我担心这种情况仍然存在。

是的,您可以依靠内置操作符&&来短路。这是规范的一部分

是的,这是有效的,但更习惯地说!vector.empty() && vector[0] == 3:这将以最大的效率工作于所有容器,所以它永远不会更糟,有时更好,总是更可读。