UE4單向鏈表的使用

本來在這裏寫這個東西感覺不是很高端。有些時候我們匆匆忙忙的寫很多東西,很多時候都是基於熟悉的緣故。一次次的重複,譬如Slate,我已經寫的厭煩了。沒有什麼動力了。

今天來了個需求,讓做一個Slate動畫效果。可是Slate做複雜動畫如果不用UMG的話,其實是很費勁的。但是UMG我覺得UE公司做的很雞肋,雖然可以使用,但是一些成熟的UI設計工具,相去甚遠!好了廢話太多,實現以下單向鏈表吧:


UE4簡單的定義了一個TList模板類,如下:

/*----------------------------------------------------------------------------
TList.
----------------------------------------------------------------------------*/
//
// Simple single-linked list template.
//
template <class ElementType> class TList
{
public:


ElementType Element;
TList<ElementType>* Next;


// Constructor.


TList(const ElementType &InElement, TList<ElementType>* InNext = nullptr)
{
Element = InElement;
Next = InNext;
}
};

TList<FGuid>* NewElement = new TList<FGuid>(TaskStateMessage->TaskGuid, NULL);


使用舉例:

//假設的數據源
TArray<int32> int32Arrary;
int32Arrary.Add(100);
int32Arrary.Add(50);
int32Arrary.Add(180);


TList<int32> *head, *temp;
//創建頭結點,使用實際數據源中的某一個,int32Arrary[0]
head = temp = new TList<int32>(int32Arrary[0], NULL);


for (int32 i = 0; i < 2; i++)
{
//創建新節點
temp->Next = new TList<int32>(int32Arrary[i+1], NULL);
//初始化temp爲上一個創建好的節點
temp = temp->Next;
}
//循環結束後整個鏈表就創建完成了


//只要節點指針p不爲空,就繼續打印
for (temp =head; temp !=NULL; temp = temp->Next)
{
GEngine->AddOnScreenDebugMessage(-1, 5.f, FColor::Red, FString::FromInt(temp->Element));
}

//結果:100->50->180



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章