UnrealEngine5/공부

[UE5] Unreal Container_TArray와 TSet

왹져박사 2025. 4. 3. 18:07

C++ STL과 UCL(Unreal Container Library)의 차이

 

STL

  • STL은 UCL에 비하여 범용적으로 설계됨
  • STL은 '표준'이기 때문에 호환성이 높음
  • 그만큼 많은 기능이 엮여있기 때문에 컴파일 시간이 김

 

UCL

  • UCL은 언리얼 엔진에 특화되어 있음
  • UCL은 언리얼 오브젝트 구조를 안정적으로 지원함
  • 그렇기 때문에 라이브러리가 가볍고, 게임 제작에 최적화되어 있음

 


 

UCL

TArray는 STL의 vector와 유사.

TSet은 STL의 set과 방식이 많이 다름.

STL set UCL TSet
이진 트리 형태 해시 테이블 형태
요소 삭제 시, 균형을 위해 재구축 요소 삭제 시, 재구축X
자료 순회에 적합X 빠른 자료 순회 가능
  재구축하지 않아 비어있는 데이터 존재 가능
메모리 구성이 효율적이지 않음 동적 배열의 형태

 

 

TArray와 TSet

TSet의 접근, 검색, 삽입, 삭제는 모두 O(1)의 시간복잡도를 가짐 (빠름!)

TArray는 접근이 O(1), 검색, 삽입, 삭제는 O(n)의 시간복잡도를 가짐 (검색, 삽입 삭제에 불리)

 

시간복잡도 측면에서 TSet이 우수한데, TArray를 사용하는 이유?

메모리 측면에서 TArray가 더 우수함. 연속된 자료구조이기 때문에 접근성과 순회가 가장 빠름!