【发布时间】:2017-10-30 21:28:45
【问题描述】:
是否有任何功能可以帮助我更轻松地完成以下操作?
char ch = '+';
if (( ch == '+') || (ch == '-') || (ch == '*'))
{
//do something
}
由于必须在我的代码中多次检查这一点,我希望有类似的方法
char arr ={'+','-','*'};
if (ch in arr)
{
//do something
}
【问题讨论】:
-
是什么让你觉得现有的代码不“高效”?您能否向我们展示您的基准测试表明它是您的代码中的一个瓶颈,以及您的研究表明它可以改进吗?
-
现在,如果你想要这样让你的代码更易于维护和表达,那是完全合理的:)
-
您可以使用
std::find或std::any_of之类的东西,但正如 @BoundaryImposition 所说,如果这会比您的第一个版本在性能上获胜,我会感到惊讶。 -
@BoundaryImposition 有问题的不是运行时间,而是打字时间。在实际代码中,我必须在七个字符之间进行检查,并执行三次。正如你所说,我只是想知道是否有某种方法可以使代码更易于维护和编写:)
标签: c++ if-statement char