c/c++ c语言动态数组

数组的优点与缺点

c/c++ c语言动态数组


数组的优点
- 访问比较方便,–>数组名字 index,[0,N],所有的元素都是挨个排在一起,方便整体的管理和维护
- c/c++ c语言动态数组

数组的缺点

  • 大小不可改变;
  • 不宜定义过大,栈上内存空间大小有限,全局变量不可释放;
    • c/c++ c语言动态数组

动态数组

c/c++ c语言动态数组


  • 具有数组的优点:
    • 所有的元素排列在一起,可以通过索引来访问;
  • 能够避免数组的缺点,可以使得存储更灵活;
  • 存储更灵活可以动态改变大小,不受存储规模的影响;
  • 如果容量不足,可以扩容;
  • 动态数组的内存,元素是放在堆上的,不会导致影响栈和全局变量;
    • c/c++ c语言动态数组
    • -

动态内存的接口

c/c++ c语言动态数组


定义接口头文件与源文件

  • 编写动态数组示例模块
    c/c++ c语言动态数组
  • 1.定义好动态数组的结构
    • c/c++ c语言动态数组
  • 2: vector_define: 用来配置这个动态数组存放什么样的数据类型;
    • c/c++ c语言动态数组
  • 3: vector_clear: 用来释放这个动态数组的所有内存;
    • c/c++ c语言动态数组
  • 实现以上接口函数
    • c/c++ c语言动态数组
  • 4:往动态数组最后存放元素

    • c/c++ c语言动态数组

    • c/c++ c语言动态数组

  • 实现接口函数

    • c/c++ c语言动态数组
    • -
  • 5:vector_at: 用来获取第i个元素的地址;

    • c/c++ c语言动态数组
    • c/c++ c语言动态数组
    • c/c++ c语言动态数组
  • 6:vector_begin: 用来返回元素集合的开始地址;(解决每次遍历对内存的开销)
    • c/c++ c语言动态数组
    • c/c++ c语言动态数组
    • c/c++ c语言动态数组
  • 7:vector_popall: 用来弹出这个动态数组的所有元素;
    • c/c++ c语言动态数组
    • c/c++ c语言动态数组
    • c/c++ c语言动态数组
  • vector_erease: 用来删除从i开始的count个元素;
    • c/c++ c语言动态数组
    • c/c++ c语言动态数组
    • c/c++ c语言动态数组
  • vector_popback: 用来弹出动态数组的最后一个元素;
    • c/c++ c语言动态数组
    • c/c++ c语言动态数组
    • c/c++ c语言动态数组

总结

1: 自己实现动态数组;
2: 测试自己编写的每个接口;


源代码