数组的长度是什么意思 怎么比较数组的长度?
浏览量:2180
时间:2021-03-14 16:45:34
作者:admin
怎么比较数组的长度?
在许多情况下,您可以大致判断您需要多少容量。
当您不知道长度时,您需要的数据结构称为动态可变长度数组。它被称为动态数组。这就是C中的STD::vector
动态数组通常定义为
在存储char类型的地方,同样的原理也适用于其他类型。
其中,capacity是容量,size是实际数据量。BUF是指特定的内存。当容量为4,大小为3时,将放置另一个字符,这就足够了。之后,容量和大小都变为4。
此时,您需要放置另一个字符,但无法将其放下。你需要重新分配一个更大的内存范围。并将以前的数据复制到新空间,然后释放旧的内存空间。通常的策略是将容量从4增加到8。
分配新空间、复制数据和释放旧空间的过程可以通过realloc完成。如果可以扩展当前位置的容量,realloc将直接扩展内存空间,避免复制数据的成本。
封装动态数组的数据结构。您不需要关心外部的特定内存分配过程,您可以始终将数据放在内部。
扩展容量的策略通常是加倍。但在许多情况下,可以估计最终容量的粗略值(不太准确)。动态数组通常用名为initialcapacityvalue的参数初始化。通过这种方式,传入一个估计值,这可以大大减少它重新分配空间的次数。
动态数组是最简单和最常用的数据结构。它可以保证内存的连续性,如果你把数据放在不连续的地方,并且经常从中间插入和删除,你需要一个链表。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。