목록Unreal스터디/TArray (20)
그냥 게임개발자
AddUnique 기존 컨테이너에 동일한 엘리먼트가 이미 존재하지 않는 경우 새 엘리먼트만 추가한다. 존재 여부는 엘리먼트 유형의 operator== 를 사용해서 검사한다. 검사를 하는 것은 사실 Set이 더 유용하기 때문에 사실상 효과적이지 않다. StrArr.AddUnique(TEXT("!")); // StrArr == ["Hello", "World", "of", "Tomorrow", "!"] StrArr.AddUnique(TEXT("!")); // StrArr is unchanged as "!" is already an element
Append 다른 TArray 또는 일반 C배열로의 포인터 및 해당 배열의 크기에 다수의 엘리먼트를 한꺼번에 추가한다. FString Arr[] = { TEXT("of"), TEXT("Tomorrow") }; StrArr.Append(Arr, ARRAY_COUNT(Arr)); // StrArr == ["Hello", "World", "of", "Tomorrow"];
TArray(동적배열) 언리얼 엔진의 가장 간단한 컨테이너 클래스이다. 동일한 Type을 가져야 함. 시퀀스 즉, 연결되어 있으므로 엘리먼트는 잘 정의된 순서를 갖으며 같은 유형을 가지기 때문에 몇 번째 요소를 가지고 올 때 바로 해당 주소를 가져올 수 있다. 가장 자주쓰이는 컨테이너 클래스 신속성, 메모리 효율성, 안전성을 염두에 두고 디자인 되었다. 두 가지 프로퍼티로 정의된다. '엘리먼트 유형', '부로 얼로케이터(allocator)' '엘리먼트 유형'은 배열에 저장되는 오브젝트 유형이며 동질성 컨테이너 즉, 같은 사이즈를 가진다. 전부 엄격히 같은 유형으로 지정해야 한다. 유형이 다른 엘리먼트를 하나의 TArray에 저장할 수 없다. 얼로케이터(allocator)

언리얼 엔진이 자체적으로 제작해 제공하는 자료구조 라이브러리 줄여서 UCL(Unreal Container Libaray)라고도 한다. C++ STL과 언리얼 컨테이너 라이브러리의 차이점 C++ STL은 범용적으로 설계되어 있고, 표준이기 때문에 호환성이 높다. 또한 많은 기능이 엮여 있어 include 하게 되면 컴파일 시간이 오래 걸린다. 하지만 언리얼 컨테이너 라이브러리는 가볍고 게임 제작에 최적화 되어 있고, 언리얼 오브젝트 구조를 안정적으로 지원한다. 주요 컨테이너 라이브러리는 3개로 간결할 수 있다. C++과 언리얼 컨테이너 라이브러리 두 라이브러리의 이름과 용도는 유사하지만, 내부적으로는 다르게 구현이 되어 있다. C++ Unreal vector TArray set TSet map TMap T..