programming language/C++
C++ 복합데이터
metamong-data
2025. 1. 13. 14:23
728x90
반응형
개요
C++에서 복합 데이터 유형은 기본 데이터 유형을 확장하여 더 복잡한 데이터 구조를 만들 수 있게 해줍니다. 구조체, 공용체, 열거형과 같은 전통적인 복합 데이터 유형과 현대 C++에서 제공하는 std::array
및 range-based for
구문에 대해 설명합니다.
1. 구조체 (Structure)
특징
사용자 정의 데이터 유형으로 여러 변수를 하나의 단위로 묶을 수 있습니다.
서로 다른 자료형을 포함할 수 있습니다.
예제
#include <iostream>
using namespace std;
struct Point {
int x;
int y;
};
int main() {
Point p1 = {10, 20};
cout << "Point coordinates: (" << p1.x << ", " << p1.y << ")" << endl;
return 0;
}
출력
Point coordinates: (10, 20)
2. 공용체 (Union)
특징
모든 멤버가 동일한 메모리 공간을 공유합니다.
한 번에 하나의 멤버만 저장할 수 있습니다.
예제
#include <iostream>
using namespace std;
union Data {
int i;
float f;
};
int main() {
Data d;
d.i = 10;
cout << "Integer: " << d.i << endl;
d.f = 3.14;
cout << "Float: " << d.f << endl;
return 0;
}
출력
Integer: 10
Float: 3.14
주의
공용체는 메모리를 절약할 수 있지만, 하나의 멤버만 유효하므로 주의해서 사용해야 합니다.
3. 열거형 (Enumeration)
특징
상수 집합을 정의합니다.
각 상수는 정수값을 가지며, 기본값은 0부터 시작합니다.
예제
#include <iostream>
using namespace std;
enum Color { Red, Green, Blue };
int main() {
Color favorite = Green;
cout << "Favorite color code: " << favorite << endl;
return 0;
}
출력
Favorite color code: 1
4. std::array
(정적 배열)
특징
C++ 표준 라이브러리에서 제공하는 고정 크기 배열입니다.
범위 검사를 지원하며, STL과 호환됩니다.
예제
#include <iostream>
#include <array>
using namespace std;
int main() {
array<int, 5> arr = {1, 2, 3, 4, 5};
for (size_t i = 0; i < arr.size(); i++) {
cout << "Element " << i << ": " << arr[i] << endl;
}
return 0;
}
출력
Element 0: 1
Element 1: 2
Element 2: 3
Element 3: 4
Element 4: 5
5. range-based for
특징
C++11에서 도입된 구문으로, 컨테이너의 모든 요소를 순회하는 데 사용됩니다.
기존 for 루프보다 간결하고 오류 가능성이 적습니다.
예제
#include <iostream>
#include <array>
using namespace std;
int main() {
array<int, 5> arr = {1, 2, 3, 4, 5};
for (int num : arr) {
cout << num << " ";
}
return 0;
}
출력
1 2 3 4 5
결론
C++에서 복합 데이터 유형과 현대적인 배열 및 반복 구문은 다양한 데이터 구조와 작업을 단순화하고 효율적으로 처리할 수 있습니다. 이러한 기능을 잘 활용하면 코드의 가독성과 안정성을 높일 수 있습니다.
728x90