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 }