728x90
반응형
언리얼엔진의 TArray 와 TSet 장단점에 대한 글입니다.
우선 언리얼 엔진에서 TArray 와 TSet 은 모두 요소 컬렉션을 저장하는 데 사용되는 데이터 구조입니다.
아래는 TArray 와 TSet 에 대한 설명글입니다.
TArray 란?
- TArray 는 인접한 메모리 위치에 요소를 저장하는 동적 배열입니다.
- 장점
- 더 빠른 반복 및 인덱스 기반 액세스를 제공합니다.
- 중복을 허용합니다. 즉, 동일한 요소를 여러 번 저장할 수 있습니다.
- 요소 정렬, 검색 및 조작을 위한 다양한 기능이 있습니다.
- 요소를 인덱스로 자주 접근해야 하는 경우나 중복이 필요한 경우에 적합합니다.
- 단점
- 인접한 메모리를 유지하기 위해 요소를 이동해야 하는 경우 요소 삽입 또는 제거가 느려질 수 있습니다.
- 요소 검색은 모든 요소를 하나씩 확인해야 하기 때문에 TSet 에 비해 시간이 오래 걸릴 수 있습니다.
TSet 이란?
- 고유 요소의 정렬되지 않는 모음입니다. 해시테이블 형태로 키데이터가 구축되어 있기에 빠른 검색이 가능합니다.
- 장점
- TArray 에 비해 조회 시간이 더 빠릅니다. TSet 에서 요소를 검색하는 것은 평균적으로 일정 시간 복잡도(O(1))를 가집니다.
- 각 요소가 한 번만 저장될 수 있음을 의미하는 고유성을 자동으로 적용합니다.
- 요소 삽입 및 제거는 요소 이동이 필요하지 않기 때문에 일반적으로 TArray보다 빠릅니다.
- 고유성이 중요하고 빈번한 요소 조회가 필요한 경우에 적합합니다.
- 단점
- 중복을 허용하지 않습니다. 동일한 요소를 여러 번 저장해야 하는 경우 TArray 가 더 적합합니다.
- 순서가 없는 컬렉션이므로 요소의 순서가 유지되지 않습니다.
728x90
반응형
'언리얼 엔진 > C++' 카테고리의 다른 글
[언리얼엔진] C++ TEnumAsByte<EPhysicalSurface> 사용할 때 확인할 것 (0) | 2023.08.06 |
---|---|
[언리얼엔진] C++ 현재 맵 이름 가져오기 (0) | 2023.08.03 |
언리얼엔진 C++ 에디터 뷰포트에서 월드에 있는 액터 Focus (0) | 2022.12.05 |
언리얼엔진 C++ Thread 만들기 (FRunnable) (0) | 2022.12.05 |
언리얼엔진 C++ Enum to String(static template) (0) | 2022.07.22 |