C ++枚举中的最大值和最小值
有没有办法find一个枚举的最大和最小定义值在c + +?
不,没有办法在C ++中find任何枚举的最大值和最小值。 当需要这种信息时,定义一个Last和First值通常是很好的做法。 例如,
enum MyPretendEnum { Apples, Oranges, Pears, Bananas, First = Apples, Last = Bananas };
First
和Last
之间的每个值都不需要命名值。
不,不是标准的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 }