Table of Contents
개요
언리얼 컨테이너 라이브러리
- 언리얼 엔진이 자체 제작해 제공하는 자료구조 라이브러리
- 줄여서 UCL(Unreal Container Library) 라고도 함.
- 언리얼 오브젝트를 안정적으로 지원하며 다수 오브젝트 처리에 유용하게 사용됨.
- 언리얼 C++는 다양한 자료구조 라이버르리를 직접 만들어 제공하고 있음.
- 실제 게임 제작에 유용하게 사용되는 라이브러리로 세 가지를 추천함.
- ⇒
TArray
,TMap
,TSet
- ⇒
C++ STL과 언리얼 컨테이너 라이브러리의 차이점
-
C++ STL은 범용적으로 설계되어 있다.
-
C++ STL은 표준이기 때문에 호환성이 높다.
-
C++ STL에는 많은 기능이 엮여 있어 컴파일 시간이 오래걸림.
-
언리얼 컨테이너 라이브러리는 언리얼 엔진에 특화돼 있음.
-
언리얼 컨테이너 라이브러리는 언리얼 오브젝트 구조를 안정적으로 지원한다.
-
언링러 컨테이너 라이브러리는 가볍고 게임 제작에 최적화되어 잇음.
언리얼 C++ 주요 컨테이너 라이브러리
- 두 라이브러리의 이름과 용도는 유사하지만, 내부적으로 다르게 구현되어 있음.
TArray
: 오브젝트를 순서대로 담아 효율적으로 관리하는 용도로 사용- → C++ STL의
vector
와 대응
- → C++ STL의
TSet
: 중복되지 않는 요소로 구성된 집합을 만드는 용도로 사용- → C++ STL의
set
과 대응
- → C++ STL의
TMap
: 키, 밸류 조합의 레코드를 관리하는 용도로 사용- → C++ STL의
map
과 대응
- → C++ STL의
TArray의
구조와 활용
TArray
개요
TArray
는 가변 배열(Dynamic Array)자료 구조- STL의
vector
와 동작 원리가 유사함 - 게임 제작에서는 가변 배열 자료구조를 효과적으로 활용하는 것이 좋음.
- 데이터가 순차적으로 모여있기 때문에 메모리를 효과적으로 사용할 수 있고 캐시 효율이 높다.
- 컴퓨터 사양이 좋아지면서, 캐시 지역성(Locality) 으로 인한 성능 향상은 굉장히 중요해짐.
- 임의 데이터의 접근이 빠르고, 고속으로 요소를 순회하는 것이 가능.
- 가변 배열의 단점
- 맨 끝에 데이터를 추가하는 것은 가볍지만, 중간에 요소를 추가하거나 삭제하는 작업은 비용이 큼
- 데이터가 많아질 수록 검색, 삭제, 수정 작업이 느려지기 때문에, 많은 수의 데이터에서 검색 작업이 빈번하게 일어난다면
TArray
대신TSet
을 사용하는것이 좋음.
TArray의 내부 구조
🔗TArray 공식 문서 링크
'UE5 > 이득우의 언리얼 프로그래밍 공부 노트' 카테고리의 다른 글
[Part1] 12.언리얼 엔진의 메모리 관리 (0) | 2024.01.28 |
---|---|
[Part1] 11.언리얼 컨테이너 라이브러리(2)-구조체와 Map (1) | 2023.12.31 |
[Part1] 9.언리얼C++ 설계(3) - 델리게이트 (1) | 2023.12.17 |
[Part1] 8.언리얼C++ 설계(2)-컴포지션 (1) | 2023.11.25 |
[Part1] 7.언리얼C++ 설계(1)-인터페이스 (0) | 2023.11.12 |