C ++枚举中的最大值和最小值
时间:2020-03-06 14:59:27 来源:igfitidea点击:
有没有办法找到C ++中枚举的最大和最小定义值?
解决方案
不,无法找到C ++中任何枚举的最大和最小定义值。当需要此类信息时,通常最好的做法是定义一个Last和First值。例如,
enum MyPretendEnum
{
Apples,
Oranges,
Pears,
Bananas,
First = Apples,
Last = Bananas
};
不需要为"第一"和"最后"之间的每个值命名值。
不,不是在标准C ++中。我们可以手动执行以下操作:
enum Name
{
val0,
val1,
val2,
num_values
};
num_values将包含枚举中的值数。
否。C或者C ++中的枚举只是一个常量列表。没有更高的结构可以保存此类信息。
通常,当我需要此类信息时,我会在枚举中包含以下最大值和最小值:
enum {
eAaa = 1,
eBbb,
eCccc,
eMin = eAaaa,
eMax = eCccc
}
有关如何使用它的一些示例,请参见此网页:愚蠢的枚举技巧
enum My_enum
{
FIRST_VALUE = 0,
MY_VALUE1,
MY_VALUE2,
...
MY_VALUEN,
LAST_VALUE
};
定义后,My_enum :: LAST_VALUE == N + 1
我们甚至不需要它们,我只想说一句,如果我们有:
enum Name{val0,val1,val2};
如果我们有switch语句,并检查是否达到最后一个值,请执行以下操作:
if(selectedOption>=val0 && selectedOption<=val2){
//code
}

