以下两者中的哪一个在以下两个中更可取,为什么?
1。
std::stack<int>stk;
//Do something
if( stk.empty() == true || stk.top() < 10 )
{
//Do something.
}
要么
2
std::stack<int>stk;
//Do something
if( stk.empty() == true )
{
//Do something.
}
else if( stk.top() < 10 )
{
//Do something.
}
最佳答案
内置运算符&&
和||
执行短路评估(如果在评估第一个操作数之后知道结果,则不要评估第二个操作数)。因此,表达式stk.empty() || stk.top() < 10
是安全且良好的做法,仅当stk.top()
评估为stk.empty()
时才调用false
。换句话说,运营商旨在实现这种使用。
关于c++ - 如果验证容器的大小并在相同的条件语句下访问元素,这是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52130808/