数组简单介绍
来源:互联网 发布:投标书编制软件 编辑:程序博客网 时间:2024/06/07 07:22
数组是一种最简单的数据结构,又一块连续内存组成并按照顺序存储数据。创建数组时,需要指定数组容量大小,然后根据大小分配内存。因此数组的空间效率不是很高,经常会有空闲的区域没有得到充分利用。但由于数组中的内存是连续的,于是可以根据下标在O(1)时间读/写任何元素,故时间效率却是很高的,于是常应用于实现简单的哈希表。
在C++中,使用STL的vector来解决数组空间效率不高的问题。先申请一个较小的空间,往进添加数据,当数据的数目超过了数组的容量时候,会自动申请一块更大的空间(vector每次扩容时,新的容量都是前一次的二倍),把之前的数据复制到新的数组中,在把之前的内存释放了,就可减少空间的浪费。但扩容之后,又会有额外的大量操作,对时间性能有了很大的负面影响,因此,使用动态数组时,要尽量减少改变数组容量大小的次数。
在C/C++中,数组和指针是相互关联但又存在一些区别的两个概念。声明一个数组时候,数组的名字也是一个指针,该指针指向数组中的第一个元素。
int getSize(int data[]){ return sizeof(data);}int main(){ int temp_data[] = {1, 2, 3, 4, 5} int size1 = sizeof(temp_data); //size1 = 20 int *point_data = temp_data; int size2 = sizeof(point_data); //size2 = 4 int size3 = getSize(temp_data); //size3 = 4}
sizeof(temp_data)是求数组的大小,该数组中包含5个int型整数,故size1 = 20。point_data声明为一个指针,指向数组第一个元素,在32位操作系统中,指针的大小为4字节,故size2 = 4。在C/C++中,当数组作为函数的参数进行传递时,数组就自动退化为同类型的指针,故size3 = 4。
1 0
- 数组简单介绍
- c语言数组简单介绍
- c++ 二维数组简单介绍
- iOS数组排序简单介绍
- 简单的一维数组介绍
- oracle数组的简单介绍及应用
- 字符串数组集合OC简单介绍
- c语言-----数组的简单介绍
- 操作数组的流 ByteArrayInputStream 和 ByteArrayOutputStream的简单介绍
- 指针数组、数组指针、指针函数、函数指针的简单介绍
- 简单介绍
- 简单数组
- 简单数组
- 简单数组
- 简单数组
- 简单数组
- 简单数组
- C语言中 数组的运算及sizeof()和strlen()操作符的简单介绍
- The Most Important Algorithms (in CS and Math)
- 碰运气(YourLucky)
- Java内部类(成员内部类、局部内部类、静态内部类、匿名内部类)
- 记又一次unhappy考试(10.6)
- awk中可以使用system来执行复杂的shell命令
- 数组简单介绍
- 关于eSIM的一些简单介绍
- 棋盘问题(POJ1321)(A)
- 打工
- 关于打包成APK
- java--servlet相关类(4)
- 机房收费系统之上下机思路整理
- C语言位运算
- unity3d--物体移动方式总结