enum을 이용한 색상 상수 정의
enum을 사용하면 각 항목에 정수 값을 명시적으로 지정할 수 있다. 명시하지 않으면 0부터 자동으로 증가한다.
위 예시에서 Red는 0, Green은 1, Blue는 2, Alpha는 3, SIZE는 4가 된다.
#include <iostream>
using namespace std;
enum Color
{
Red = 0,
Green,
Blue,
Alpha,
SIZE
};
배열을 이용한 색상 데이터 저장
int colors[SIZE] = { 255, 128, 128 };
cout << "Red : " << colors[Red] << endl;
cout << "Green : " << colors[Green] << endl;
cout << "Blue : " << colors[Blue] << endl;
enum 값을 배열의 인덱스로 사용하면 가독성도 좋고 유지보수도 편리하다. SIZE는 배열의 크기로도 사용될 수 있다.
배열을 이용한 평균 계산
기본적으로 평균을 계산할땐 밑에 있는 코드처럼 그냥 더해서 값을 나누는 형태를 쓸수있다.
이 코드는 간단하지만 나중에 유지보수할때 안좋을수 있는데 이유는 추가적으로 다른 요소들이 더해졌을때 하나씩 전부 바꿔줘야한다는 것이다.
struct ColorStruct
{
int red;
int green;
int blue;
};
ColorStruct cs = { 255, 128, 64 };
int avg1 = (cs.red + cs.green + cs.blue) / 3;
cout << avg1 << endl;
int avg0 = (colors[Red] + colors[Green] + colors[Blue]) / 3;
cout << avg0 << endl;
조금 가독성이 떨어지긴하지만 유지보수를 위해서는 밑에와 같은 코드를 써도 좋다.
이렇게 되면 모든 값을 유연하게 대처할수 있다.
int total = 0;
for (int i = 0; i < SIZE; ++i)
{
total += colors[i];
}
int avg0 = total / SIZE;
cout << avg0 << endl;
'C++' 카테고리의 다른 글
[C++] Array (0) | 2025.05.29 |
---|---|
[C++] enum class & enum struct (0) | 2025.05.28 |
[C++] Union 유니온 (0) | 2025.05.26 |
[C++] Struct alignas (0) | 2025.05.24 |
[C++] Struct 구조체 (0) | 2025.05.23 |