TArray的MoveTemp推荐
发布日期:2021-06-29 12:05:29 浏览次数:3 分类:技术文章

本文共 492 字,大约阅读时间需要 1 分钟。

TArray成员变量介绍

TArray实际占用的内存,只有这3个成员变量的内存

Engine\Source\Runtime\Core\Public\Containers\Array.h

 

ElementAllocatorType AllocatorInstance;    //数组内存分配器指针SizeType ArrayNum;    //数组长度SizeType ArrayMax;    //ArrayMax是数组最大可容纳元素的数量

 

TArray构造方式

拷贝构造

扩容方式和STL的vector是差不多的,当容量满了之后,会额外分配一个更大的内存,将整个数组的数据拷到新内存上,之后再释放旧的内存(InlineAllocator不会释放Inline部分)。

移动构造

C++11新增的移动构造函数

把传入TArray的Allocator的指针和数组容量拷贝到当前数组,而传入的数组直接恢复到无分配的默认状态。

因此使用移动构造函数用于以下三个方面能让性能更好

  • 函数的参数

  • 返回值

  • lambda时需要传入数组

对于左值一定要显式调用MoveTemp函数才能使移动构造函数生效。

 

转载地址:https://blog.csdn.net/zzZZ20150101/article/details/116002339 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C++头文件包含顺序推荐
下一篇:UE4-Gameplay技能系统

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月09日 03时14分24秒