about TArray

TArray¿¡ ´ëÇØ Àß »ç¿ë µÇÁö ¾ÊÁö¸¸ À¯¿äÇÑ ÆÁ¿¡ ´ëÇØ ¾Ë¾Æº»´Ù.

¹è¿­ ƯÁ¤°ªÀ¸·Î ÃʱâÈ­

IntArray.Init(10, 5);

´ÙÀ½°ú °°ÀÌ 10À» 5¹ø ä¿î´Ù.
IntArray == [10,10,10,10,10]

¼ÒÆÃ

IntArray.Sort();

Binary Search

TArray¿¡¼­ ÀÌÁø °Ë»öÀ» ÇÒ·Á¸é Algo::BinarySearch ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù.
ÇÊ¿äÇÑ Çì´õ´Â ´ÙÀ½°ú °°´Ù.

#include "Algo/BinarySearch.h"

¿øÇÏ´Â Å°¸¦ ãÀ¸¸é ¹è¿­ÀÇ À妽º¸¦ ¸®ÅÏÇÑ´Ù.

    TArray<int> IntList;
    for(int n = 0; n < 10; n++)
        IntList.Add(n*10);

    IntList.Add(1);
    int Index = Algo::BinarySearch(IntList, 0);
    int Index1 = Algo::BinarySearch(IntList, 10);
    int Index2 = Algo::BinarySearch(IntList, 80);

°á°ú)
index´Â 0ÀÌ´Ù.
index1Àº 1ÀÌ´Ù.
index2´Â 8ÀÌ´Ù.

±¸Á¶Ã¼ Find

IndexOfByPredicate °ªÀ¸·Î ÇØ´çÇÏ´Â ¹è¿­ÀÇ À妽º¸¦ ¸®ÅÏÇÑ´Ù.
¶÷´Ù·Î Å°°ªÀ» °Ë»ö ÇÒ¼öµµ ÀÖ´Ù.

USTRUCT(BlueprintType)
struct FMyStruct
{
    GENERATED_BODY()
public:
    FMyStruct();
    ~FMyStruct();
    UPROPERTY()
    FString Name;
    UPROPERTY()
    int id = 0;
};

//Çì´õÆÄÀÏÀÇ Å¬·¡½º ÄÚµå
UPROPERTY()
TArray<FMyStruct> MyArray;

//CPP ¼Ò½º ÄÚµå
FMyStruct my;
my.Name = FString("aaa");
my.id = 1;
MyArray.Add(my);
my.Name = FString("bbb");
my.id = 2;
MyArray.Add(my);
my.Name = FString("ccc");
my.id = 3;
MyArray.Add(my);

int Key = 2;
int32 Index = MyArray.IndexOfByPredicate([Key](const FMyStruct& In) {
    return In.id == Key;
});

Index °á°ú °ªÀº 1ÀÌ´Ù.