WN_인생기록

[UE_5] TArray 본문

코드 리뷰

[UE_5] TArray

WhNi 2024. 5. 31. 14:28

https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/TArrays/

 

TArray: 언리얼 엔진의 배열

 

docs.unrealengine.com

 

 

Dynamic Array인 자료구조이며, c++ STL의 vector와 유사함.

 

중간에 데이터를 추가하는것만 아니면, 탐색이 빠른 자료구조. 

데이터가 커지면 탐색이 느려지긴 함. 

 

함수 기능

 

Emplace 를 통해서 배열 끝에 삽입 가능.

 

AddUnique 는 기존 컨테이너에 원소가 존재하지 않는 경우에만  추가

StrArr.AddUnique(TEXT("!"));
// StrArr == ["Hello","World","of","Tomorrow","!"]

StrArr.AddUnique(TEXT("!"));
// StrArr is unchanged as "!" is already an element

 

SetNum을 통해서 해당 원소에 번호를 부여하고,  Set한 번호가 원소보다  많으면 공백으로 추가함

StrArr.SetNum(8);
// StrArr == ["Hello","Brave","World","of","Tomorrow","!","",""]

 

Sort 는 데이터의 길이 별로 정렬됨.

 

Num 기능을 통해서 해당 원소의 갯수를 파악 가능

 

GetData()를 통해서 포인터를 얻어서 사용할 수도 있음

FString* StrPtr = StrArr.GetData();
// StrPtr[0] == "!"
// StrPtr[1] == "of"
// ...
// StrPtr[5] == "Tomorrow"
// StrPtr[6] - undefined behavior

 

 

Find를 통해서 원소를 찾을 수 있음

int32 Index;
if (StrArr.Find(TEXT("Hello"), Index))
{
    // Index == 3
}

 

Contains를 통해서 특정 원소가 들어가있는지도 확인 가능

bool bHello   = StrArr.Contains(TEXT("Hello"));
bool bGoodbye = StrArr.Contains(TEXT("Goodbye"));
// bHello   == true
// bGoodbye == false

 

MoveTemp를 통해서 배열 이동이 가능함, 원본 배열은 공백으로 남음

ValArr3 = MoveTemp(ValArr4);
// ValArr3 == [5,2,3,1,2,3]
// ValArr4 == []

 

 

Empty 를 통해서 모든 데이터를 제거함

ValArr2.Empty();
// ValArr2 == []

 

 

'코드 리뷰' 카테고리의 다른 글

[UE_5] TSet  (0) 2024.05.31
A* Algorithm -2  (0) 2024.03.28
A* Algorithm -1  (0) 2024.03.25