UStruct
구조체와 클래스는 구조적으로 큰 차이가 없지만,
현재 추세로 볼 때
구조체는 데이터 저장/전송 특화 객체, 클래스는 객체로 사용함
접두사 F를 붙임
Reflection을 사용하려면 USTRUCT 매크로를 선언해야 함.
내부에 GENERATED_BODY 매크로를 선언하면 UScriptStuct 클래스로 구현되고,
제한적으로 Reflection을 지워하여 UPROPERTY 매크로는 선언 가능하지만 UFUNCTION의 기능의 선언 X.
대부분 힙 메모리 할당 없이 스택 내 데이터로만 사용.
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/structs-in-unreal-engine
TMap
STL map과 UCL map
STL map | UCL TMap |
이진 트리로 구성 | key-value의 TSet 구조로 구현 |
정렬 지원(메모리 구성 비효율적) | 빠른 검색/순회 |
데이터 삭제 시 재구축 | 데이터 삭제 시 재구축X |
순회에 비적합 | TMultiMap으로 중복 value도 관리 가능 |
사용은 C#의 Dictionary와 비슷, 동작 원리는 STL unordered_map과 유사
내부 구조는 C++의 해시테이블 형태, TSet으로 이루어짐
TSet, TMap모두 중복 key 값을 허용하지 않지만,
TSet은 key값으로만 이루어져 있고, TMap은 key-value 한 쌍으로 이루어져 있음.
TSet/TMap/TMultiMap
모두 접근/검색/삽입/삭제가 O(1)의 시간복잡도를 가짐
TSet: 중복 값 X, key 구성
TMap: 중복 Key 값 X, key-value 구성
TMultiMap: 중복 O, key-value 구성
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/map-containers-in-unreal-engine
Algo::Transform
컨테이너 내부의 값을 다른 컨테이너로 변환하고 싶을 경우 사용하는 알고리즘
다음과 같은 형태로 사용함_가져올 컨테이너 변수, 저장할 컨테이너 변수, 가져와 저장할 값
Algo::Transform(input, output, transform)
https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Core/Algo/Algo__Transform
'UnrealEngine5 > 공부' 카테고리의 다른 글
[UE5] Dedicated server 전용 서버 독학하기 1) 공식 문서 튜토리얼 (0) | 2025.04.09 |
---|---|
[UE5] !!반환을 하는 이유 (0) | 2025.04.09 |
[UE5] Unreal Container_TArray와 TSet (0) | 2025.04.03 |
[UE5] C++과 Unreal의 Delegate (0) | 2025.04.03 |
[UE5 / C++] 언리얼 C++ 시작하기 (0) | 2025.04.01 |