TArray¿¡ ´ëÇØ Àß »ç¿ë µÇÁö ¾ÊÁö¸¸ À¯¿äÇÑ ÆÁ¿¡ ´ëÇØ ¾Ë¾Æº»´Ù.¹è¿ ƯÁ¤°ªÀ¸·Î ÃʱâÈIntArray.Init(10, 5);´ÙÀ½°ú °°ÀÌ 10À» 5¹ø ä¿î´Ù. IntArray == [10,10,10,10,10] ¼ÒÆÃIntArray.Sort();Binary SearchTArray¿¡¼ ÀÌÁø °Ë»öÀ» ÇÒ·Á¸é 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ÀÌ´Ù. ±¸Á¶Ã¼ FindIndexOfByPredicate °ªÀ¸·Î ÇØ´çÇÏ´Â ¹è¿ÀÇ À妽º¸¦ ¸®ÅÏÇÑ´Ù.¶÷´Ù·Î Å°°ªÀ» °Ë»ö ÇÒ¼öµµ ÀÖ´Ù. 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ÀÌ´Ù. |