7.1 C/C++ 实现动态数组
动态数组相比于静态数组具有更大的灵活性,因为其大小可以在运行时根据程序的需要动态地进行分配和调整,而不需要在编译时就确定数组的大小。这使得动态数组非常适合于需要动态添加或删除元素的情况,因为它们可以在不浪费空间的情况下根据需要动态增加或减少存储空间。
动态数组的内存空间是从堆(heap)上分配的,动态数组需要程序员手动管理内存,因为它们的内存空间是在程序运行时动态分配的。程序员需要在使用完动态数组后手动释放其内存空间,否则可能会导致内存泄漏的问题,进而导致程序崩溃或者运行缓慢。因此,在使用动态数组时,程序员需要特别注意内存管理的问题。
读者需自行创建头文件dynamic.h
并拷贝如下动态数组代码实现;
|
上述代码的使用很容易,如下代码实现了动态数组的基本操作,包括创建动态数组、插入元素、删除元素、遍历元素和销毁动态数组。其中定义了一个自定义结构体Student
,用于作为动态数组的元素。在使用InitDynamicArray
函数创建动态数组之后,使用InsertDynamicArray
函数将四个元素插入到动态数组中,其中第三个元素插入的位置为3
。然后使用RemoveByPosDynamicArray
函数根据下标移除第一个元素,使用RemoveByValueDynamicArray
函数根据元素的值移除第二个元素,其中使用myCompare
回调函数对比元素。最后使用ForeachDynamicArray
函数遍历所有元素,并使用MyPrint
回调函数输出元素的值。最终销毁动态数组,释放内存。
|