关于TArray的Num()函数返回值的问题:
Num()返回TArray里的元素数目,而不是TArray占用的内存尺寸
- Shrink()
- Shrink不会改变Num()返回值。它的功能是释放TArray占用的多余的内存,仅保留Num()个元素占用的内存。
- Resize系列
- 不会改变Num()返回值。它的功能是调整TArray占用的内存量。注意:蓝图里的Array.Resize函数实际上是调用C++的SetNum函数。
- Reserve()
- 不会改变Num()返回值。它的功能是调整TArray占用的内存量。
- Empty()
- 会导致Num()返回0. 它的功能是清空TArray里的所有元素,同时可以调整TArray内存占用量。其默认参数0会导致Empty()释放TArray占用的所有内存。
- Reset()
- 会导致Num()返回0. 它的功能与Empty()类似,移除TArray里的全部元素,但是与Empty不同的是:Reset默认参数0不会改变TArray的内存占用量。
- SetNum系列
- 直接设定Num()的值。功能就是设定TArray里的元素数量。
|