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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值