这个条件如何运作?

det*_*ler 1 c++ if-statement

我有以下IF声明,我无法弄清楚它的含义:

if (data->tokens.size()) 
{..
  //reads each token in a for loop and assigns each token to a variable...
}
Run Code Online (Sandbox Code Playgroud)

令牌中有六个值,所以tokens.size()应该返回6,对吧?

我不明白为什么我们需要if条件呢?据我所知,如果条件将tokens.size()返回1,则返回1,如果返回0则返回false .

在我的情况下,它返回6(或任何数量的令牌,可以是任何数字,而不只是0或1).那么如果条件有效呢?

换句话说,我想知道在获得0和1以外的值时如何处理.

Mat*_*son 5

如果没有给出其他内容,则C和C++中的条件状态将隐式地与"不等于零"进行比较.例如if (data->tokens.size())if (data->tokens.size() != 0).