如何正确缩短C++中的if语句?

Spe*_*eed 1 c++ if-statement

好的,我有一个if句子,我多次比较一个特定的值.我打赌有一个更短的方法来做到这一点:

if(letter == "%" || letter == "+" || letter == "-" || letter == "!")
Run Code Online (Sandbox Code Playgroud)

我试着把它写成:

if(letter == "%" || "+" || "-" || "!")
Run Code Online (Sandbox Code Playgroud)

但它工作不正确.

Mar*_*ers 6

像这样的东西可能会起作用:

string s("%+-!");
if (s.find(letter) != string::npos) { ... } 
Run Code Online (Sandbox Code Playgroud)

  • +1虽然它是正确的并且它是一个很常用的习惯用法,但我一直认为这是一个寻找问题的解决方案:-) (2认同)