以下两者中的哪一个在以下两个中更可取,为什么?

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/

10-12 20:43