全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

为什么C的数组必须要指明尺寸大小?

发布时间:2023-10-11 04:01:21
发布人:xqq

一、为什么C的数组必须要指明尺寸大小

不指明尺寸大小就无法开辟内存。无论是在堆上还是栈上,为了实现常数时间的随机访问,数组元素都必须线性的分布在一段内存里。

如果想实现动态数组的话,就意味着编译器必须要插入额外的代码来实现动态的重分配内存和转移元素,这会给程序带来额外的性能损耗。

c++的基本设计理念之一就是不引入任何没有必要的cost。换言之,程序员不应该(或者尽可能少的)为任何没有使用的特性承担性能开销。

再者,一个可以动态resize/reallocate的数组对于裸内存和指针非常不友好。频繁的数组操作会导致一个指针很难被固定在原地。这会使得很多复杂的直接操作内存的编程技巧难以实现。

所以通常的实践都是如果你确定不需要任何动态数组特性,就用原生数组类型。

需要的话用std::vector。

延伸阅读:

二、二叉树和红黑树

二叉树:对于表提供自增整形字段作为建立索引的列,那子元素总是添加去了右侧,导致左子树一直为空,那么查找时就完全退化成了没加索引那样了。红黑树:红黑树解决了二叉树不平衡的问题。然为什么要费力保持树的平衡性?是因为树的查找性能取决于树的高度,让树尽可能平衡,就能降低树高。但因为其父节点只能存在两个子节点,那在数据量大的时候,深度也很大。
#it技术干货

相关文章

softmax有哪些作用?

softmax有哪些作用?

2023-10-11
哪些数据库适合聊天记录的管理,有什么优缺点?

哪些数据库适合聊天记录的管理,有什么优缺点?

2023-10-11
数据结构和程序设计是什么,两者有什么区别?

数据结构和程序设计是什么,两者有什么区别?

2023-10-11
为什么不用二叉查找树进行排序?

为什么不用二叉查找树进行排序?

2023-10-11

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取