遍匈 / UE4縮殻 /

UE4嶄議強蓑方怏?TArray否匂

<貧匯准 和匯准>
葎焚担聞喘UE4戻工議否匂窃?

泌惚低喘狛C++議STL垂?低祥岑祇STL戻工阻光嶽光劔議否匂/方象潤更?聞誼低斤侃尖載謹方象議扮昨掲械酔楯互丼。UE4揖劔匆戻工阻窃貌議垂?垂戦中議窃侏頁參T蝕遊議?聞喘UE4戻工議否匂垂辛參厚挫仇糞孖睡峠岬。侭參壓UE4序佩蝕窟議扮昨厘断載富肇聞喘STL否匂?厚謹扮昨頁聞喘UE4戻工議否匂。

匯、TArray<T>頁焚担

泌惚低僥狛C++議庁医?低祥岑祇TArray<T>頁匯倖庁医窃侏?T頁喇厘断峺協議販吭窃侏。曳泌低?幹秀匯倖方怏圷殆脅頁int窃侏議強蓑方怏?椎担宸倖方怏窃侏祥頁TArray<int>?窃貌議?低辛參幹秀TArray<double>、TArray<FString>吉吉?T封崛頁辛參頁低徭失幹秀議C++窃。

TArray<T>嶄侭嗤方象圷殆脅頁T窃侏議?咀緩音嬬詞栽光嶽音揖窃侏議圷殆序肇宸倖否匂。TArray短嗤譜柴撹瓜写覚議?侭參音哘乎肇写覚万。旺拝new/delete匯倖TArray頁裡孁議佩葎。輝TArray議伏凋巓豚潤崩扮?階竃恬喘囃??否匂戦中議侭嗤圷殆匆氏瓜?支。輝低貫総匯倖TArray幹秀匯倖仟議TArray氏鹸崙侭嗤方象圷殆欺仟議延楚?遇音氏慌峴宸乂圷殆議坪贋。

屈、幹秀強蓑方怏

葎阻幹秀匯倖強蓑方怏?低辛參宸劔亟?
TArray<int32> IntArray;
廣吭?int32頁32了屁侘?遇int氏功象字匂音揖遇忖准音揖?侭參葎阻睡峠岬秀咏聞喘int32。
宸扮昨?咀葎厘断短嗤方象野割欺乎方怏戦中?侭參珊短嗤坪贋瓜蛍塘。

眉、野割強蓑方怏

1) TArray::Init

壓UE4議郊圭猟亀辛參心欺乎痕方議蕗苧?
void Init(const ElementType & Element, int32 Number)
乎痕方喘噐譜崔方怏葎Number倖?旺拝耽倖圷殆峙議葎Element?箭泌?
IntArray.Init(10, 5);
// IntArray == [10,10,10,10,10]

2) TArray::Add

枠栖心乎痕方議蕗苧?
int32 Add( const ElementType & Item)
乎痕方喘噐耶紗仟圷殆欺強蓑方怏挑硫。

3) TArray::Emplace

枠栖心乎痕方議蕗苧?
template<typename... ArgsType>
int32 Emplace( ArgsType &&... Args)
乎痕方匆頁喘噐耶紗仟圷殆欺強蓑方怏挑硫。幣箭?
TArray<FString> StrArr;
StrArr.Add(TEXT("Hello"));
StrArr.Emplace(TEXT("World"));
// StrArr == ["Hello","World"]
埋隼Add才Emplace脅頁耶紗仟圷殆欺強蓑方怏挑硫?音狛万断議坪何糞孖頁音揖議?
  • Add氏鹸崙圷殆欺方怏否匂戦中
  • Emplace聞喘低公議歌方栖更夛匯倖仟議圷殆窃侏議糞箭

壓貧中議幣箭嶄?Add幹秀阻匯倖FString匝扮延楚?隼朔勧弓公方怏?壓方怏坪何壅肝距喘申唄更夛痕方栖鹸崙宸倖FString匝扮延楚。徽頁Emplace聞喘阻C++11議嘔峙哈喘室宝?万音氏更夛匝扮延楚?遇頁壓方怏坪何聞喘宸倖忖憲堪械楚栖幹秀FString延楚。咀緩?喇噐Emplace富阻匯肝申唄更夛痕方荷恬?侭參Emplace氏曳FString互丼。徽頁喇噐Add曳Emplace厚醤辛響來?泌惚頁噸宥議C++坪崔窃侏?音氏嗤申唄更夛痕方議賞寄蝕???秀咏聞喘Add。

4) TArray::Push

TArray::Push戻工阻曾倖匯劔孔嬬議嶷墮痕方辛參蛍艶旗紋Add才Emplace。侭參涙胎採扮聞喘Push曳Add才Emplace厚紗圭宴阻?
void Push( const ElementType & Item )
void Push( ElementType && Item )

膨、亨旗強蓑方怏

宥械亨旗脅崛富嗤曾嶽圭塀?匯嶽頁聞喘沫哈?匯嶽頁聞喘亨旗匂。

1) 聞喘沫哈亨旗強蓑方怏

葎阻膳楼厘断議方怏?厘断辛參壓真除NPC議痕方嶄嬉咫乎方怏。厘断繍ANPC::Prox_Implementation俐個撹泌和旗鷹?
void ANPC::Prox_Implementation(
 AActor* otherActor,
 UPrimitiveComponent* otherComp,
 int32 otherBodyIndex,
 bool bFromSweep,
 const FHitResult & sweepResult
){
 //宥狛膿崙廬算撹AAVatar頁倦撹孔栖登僅頁倦螺社叔弼
 if (Cast<AAvatar>(otherActor) == nullptr)
 {
 return;
 }
 //資誼及匯繁各陣崙匂
 APlayerController* PController = GetWorld()->GetFirstPlayerController();
 if (PController)
 {
 //資誼HUD順中
 AMyHUD* hud = Cast<AMyHUD>(PController->GetHUD());
 hud->AddMessage(Message(NpcMessage, 5.f, FColor::White));
 //霞編方怏
 TArray<int> array;
 array.Push(1);
 array.Push(3);
 array.Push(7);
 for (int index = 0; index < array.Num(); index++)
 {
 //GEngine頁畠蕉哈陪延楚?厘断聞喘万議AddOnScreenDebugMessage痕方栖壓嗄老徳鳥貧嬉咫距編佚連。
 //乎痕方及匯倖歌方頁距編補竃議了崔?野亟-1燕幣悳壓圻栖議距編佚連貧圭。
 //及屈倖歌方頁忖悶寄弌?及眉倖歌方頁忖悶冲弼?及膨倖歌方頁勣嬉咫議忖憲堪?宸戦喘FromInt痕方繍Int廬算FString。
 GEngine->AddOnScreenDebugMessage(-1, 40, FColor::White, FString::FromInt(array[index]));
 }
 }
}

廣吭?耽肝距編嬉咫議佚連脅壓圻栖議距編佚連貧中?侭參方怏戦中議坪否卆肝頁1、3、7?遇音頁7、3、1。

2) 聞喘亨旗匂儉桟方怏

void ANPC::Prox_Implementation(
 AActor* otherActor,
 UPrimitiveComponent* otherComp,
 int32 otherBodyIndex,
 bool bFromSweep,
 const FHitResult & sweepResult
){
 //宥狛膿崙廬算撹AAVatar頁倦撹孔栖登僅頁倦螺社叔弼
 if (Cast<AAvatar>(otherActor) == nullptr){
 return;
 }
 //資誼及匯繁各陣崙匂
 APlayerController* PController = GetWorld()->GetFirstPlayerController();
 if (PController)
 {
 //資誼HUD順中
 AMyHUD* hud = Cast<AMyHUD>(PController->GetHUD());
 hud->AddMessage(Message(NpcMessage, 5.f, FColor::White));
 //霞編方怏
 TArray<int> array;
 array.Push(1);
 array.Push(3);
 array.Push(7);
 //壓聞喘否匂議扮昨?葎阻否匂議荷恬匯崑來?宥械脅氏崧和中宸劔聞喘亨旗匂栖儉桟
 //侭僚議亨旗匂凪糞窃貌噐匯倖峺寞?輝斤峺寞序佩++扮?祥峺?朔中議圷殆。
 //輝階竃否匂袈律議扮昨?亨旗匂葎腎?柳竃儉桟
 for (TArray<int>::TIterator it = array.CreateIterator(); it; ++it)
 {
 //GEngine頁畠蕉哈陪延楚?厘断聞喘万議AddOnScreenDebugMessage痕方栖壓嗄老徳鳥貧嬉咫距編佚連。
 //乎痕方及匯倖歌方頁距編補竃議了崔?野亟-1祥音氏顕固參念議距編佚連。
 //及屈倖歌方頁忖悶寄弌?及眉倖歌方頁忖悶冲弼?及膨倖歌方頁勣嬉咫議忖憲堪?宸戦喘FromInt痕方繍Int廬算FString。
 GEngine->AddOnScreenDebugMessage(-1, 40, FColor::White, FString::FromInt(*it));
 }
 }
}
壓糞縞蝕窟嶄?咀葎聞喘亨旗匂序佩亨旗厚酒準胆鉱?厘断宥械脅氏宸劔序佩亨旗否匂。
<貧匯准 和匯准>

AltStyle によって変換されたページ (->オリジナル) /