博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TArray的MoveTemp推荐
阅读量:1874 次
发布时间:2019-04-26

本文共 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函数才能使移动构造函数生效。

 

转载地址:http://qwubf.baihongyu.com/

你可能感兴趣的文章
数据科学中的计量经济学技术
查看>>
突破边界:数据科学、数据工程和技术的未来
查看>>
一切有迹可循!优秀程序员的9个早期迹象
查看>>
在后台的python:众多程序员无法攻克的难题
查看>>
未来战争:装载AI的美国空军侦察机已经试飞……
查看>>
屡战屡败:为什么你会觉得学习编程很难?
查看>>
“狙击”特斯拉:电动汽车后起之秀的最后一战
查看>>
软件测试的未来:2021年需要关注的15大软件测试趋势
查看>>
六大基本AI术语:如何做好人工智能咨询服务?
查看>>
讲真,如果手机有灵魂,那就是“备忘录”
查看>>
端到端加密:WhatsApp不会去读取你的信息,它不需要……
查看>>
国会大厦骚乱,与一家极不可靠的面部识别公司……
查看>>
解锁宇宙密码:为什么是3、6、9?
查看>>
数据可视化中的格式塔心理学
查看>>
电动汽车的“专属危险”:网络威胁问题不容小觑
查看>>
短暂的告别,马上再回来
查看>>
统治50年:为什么SQL在如今仍然很重要?
查看>>
测试是一场竞争,而数据每次都会获得胜利
查看>>
读心的测谎系统:究竟是骗子还是个天才?
查看>>
最大规模技术重建:数据库连接从15000个到100个以下
查看>>