C++ 是否有指定值范围的比较运算符? (就像E语言中的“in”)?

2024-01-04

我需要编写一个条件来检查枚举变量是否在值范围内,就像可以在 E 语言中完成的那样:

enum EnumVariable {a, b, d, g, f, t, k, i};
if (EnumVariable in [ a, g, t, i]) {
    ...
}

C++ 有没有比问 4 次更好的方法if EnumVariable==a or EnumVariable==b etc.?


It appeared, that several people liked my comment and asked to post it as an answer, so:

你实际上可以使用switch for integral类型没有break-s 在一些值之间。

例如,您的代码可能如下所示:

enum EnumVariable {a, b, d, g, f, t, k, i};
switch( EnumVariable )
{
case a:
case g:
case t:
case i:
    // do something
    break;
// handler other values
};

这将非常有效,但适用于integral仅限类型,不适用于std::string, 例如。对于其他类型,您可以尝试使用其他答案的一些建议。

写起来有点长,但是非常非常高效,并且可以满足您的需要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 是否有指定值范围的比较运算符? (就像E语言中的“in”)? 的相关文章

随机推荐