C++11新特性(45)- 和动态数组相关的新特性
发布日期:2021-07-01 05:34:12
浏览次数:3
分类:技术文章
本文共 508 字,大约阅读时间需要 1 分钟。
我们通常称使用new T[]形式分配的内存为动态数组,C++11中包含一些和动态数组相关的特性。
使用初始化列表初始化
可以像一般的数组一样,使用初始化列表对动态数组进行初始化,代码如下:
毕竟不是数组
之所以叫动态数组,我猜有两个原因,一个是它的内存是动态分配的,一个就是它可以像数组一样使用:
但是动态数组和数组还是有一些区别,例如编译器无法从数组名获知数组的大小信息。下面的代码就不能正确动作:
同样地,C++11中引入的范围for也被不支持。下面的代码直接会发生编译错误:
一个有趣的例外
但是这件事有一个例外,动态申请的对象数组在释放内存是时,如果需要调用析构函数,编译器会在动态数组的前面保存动态数组的大小信息。例如下面的类:
在动态分配内存之后,可以像下面的代码一样取得数组的大小:
有一点值得注意的是,这个方法有可能依赖于编译器的实现,所以在作者不能保证在所有的编译器中都能正常动作。
补充信息
有关上述例外的说明,可以参照下面的文章:
为什么在调用delete[]时,括号中不需要指明元素的个数?
觉得本文有帮助?请分享给更多人。
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】
转载地址:https://oothinking.blog.csdn.net/article/details/80903461 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月13日 04时56分14秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Leetcode 二进制链表转整数
2019-05-07
Leetcode 矩阵对角线元素的和
2019-05-07
Leetcode 数组异或操作
2019-05-07
Leetcode 解码异或后的数组
2019-05-07
Leetcode 统计一个圆中点的数目
2019-05-07
Leetcode 删除中间节点
2019-05-07
Leetcode 左旋转字符串
2019-05-07
Leetcode 好数对的数目
2019-05-07
Leetcode 求1+2+…+n
2019-05-07
Leetcode 一维数组的动态和
2019-05-07
AM335X下Linux驱动 485串口 只能收不能发 问题的解决
2019-05-07
制作LCD 的测试图片RGB666格式
2019-05-07
使用dd命令制作固定大小的文件
2019-05-07
在Ubuntu系统下打patch的方法
2019-05-07
毁灭者p6安装win10+Ubuntu16.04双系统血泪经验总结
2019-05-07
关于Linux 驱动软件架构的理解
2019-05-07
linux内核常用宏 container_of
2019-05-07
vim技巧 使用GNU Gloabl gtags 极简配置攻略
2019-05-07
linux内核常用宏 list_for_each_entry
2019-05-07
即兴编程: 如何通过编程表达个人情感
2019-05-07