문제

C ++에서 열거의 최대 및 최소 정의 값을 찾는 방법이 있습니까?

도움이 되었습니까?

해결책

아니요, C ++에서 열거의 최대 및 최소 정의 값을 찾을 방법이 없습니다. 이런 종류의 정보가 필요할 때, 종종 마지막 값과 첫 번째 값을 정의하는 것이 좋습니다. 예를 들어,

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에 최대 및 최소값을 포함시킨다.

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

자동으로는 아니지만 인공 열거 값을 추가하여 최소 및 최대 값을 의미 할 수 있습니다.

typedef enum {start_of_colors=-1, eRed, eWhite, eBlue, eGray,
end_of_colors} eListOfTags;

for (eListOfTags i = start_of_colors+1; i < end_of_colors; i++) {
.... 
}

당신은 그들조차 필요하지 않습니다. 내가하는 일은 예를 들어 당신이 가지고 있다면 내가 말하는 것입니다.

enum Name{val0,val1,val2};

스위치 명령문이 있고 마지막 값에 도달했는지 확인하는 경우 다음과 같이하십시오.

if(selectedOption>=val0 && selectedOption<=val2){

   //code
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top