21xrx.com
2024-12-22 23:18:12 Sunday
登录
文章检索 我的文章 写文章
C++数组扩容的两种方式
2023-07-04 20:00:58 深夜i     --     --
C++ 数组 扩容 两种方式

C++数组作为一种基本的数据结构,在实际开发中经常会用到,但是在实际操作中,如果数组长度不够,需要进行扩容操作。下面我们来介绍两种常见的C++数组扩容方式。

1.手动扩容

手动扩容是一种简单而有效的数组扩容方式,开发者通过定义一个新数组,将旧数组中的元素复制到新的数组中,最后再将旧数组指针指向新的数组,完成扩容。

下面是手动扩容的代码示例:


int* arr=new int[10]; //定义一个初始长度为10的数组

int* newarr=new int[20];//定义一个新的数组,长度为20

for(int i = 0; i < 10; i++)

{

  newarr[i] = arr[i];//将arr数组中的元素复制到newarr数组中

}

delete[] arr; //清空arr数组

arr = newarr; //将arr指针指向新的数组

手动扩容需要开发者手动管理内存,容易出错,不方便快捷。

2.使用STL中的vector类

STL库提供了vector类,使用vector类可以方便地实现数组的动态扩容。vector可以在增加和删除元素时自动进行内存空间的管理。实现起来相比手动扩容,更加便捷。

下面是使用STL中的vector类进行数组扩容的代码示例:


#include <vector>

using namespace std;

vector<int> v(10); //定义一个初始长度为10的vector

v.resize(20); //将vector的长度扩充到20

使用vector类可以节省开发者自己管理内存的麻烦,不会出现手动扩容的一些问题。

总结:

两种方法都可以实现对数组的扩容,但是手动扩容需要手动管理内存,较为繁琐,而STL提供的vector则相对方便快捷,节省了开发者的时间和精力。在使用时需要开发者根据具体情况进行选择。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复