21xrx.com
2025-04-17 23:16:20 Thursday
文章检索 我的文章 写文章
C++数组拼接详解
2023-06-30 03:00:39 深夜i     101     0
C++ 数组 拼接 方法 实现

C++数组拼接是指将两个或多个数组合并成一个新的数组,这在编程中应用十分广泛。在C++中,有多种方法可以实现数组拼接,下面就来详细了解一下。

方法一:使用循环实现数组拼接

将两个数组合并,在新建的数组中存储数据即可,如下所示:

int arr1[3] = 1;
int arr2[3] = 5;
int arr3[6];
for(int i = 0; i < 3; i++) {
  arr3[i] = arr1[i];
  arr3[i + 3] = arr2[i];
}

这里通过循环将arr1和arr2中的元素复制到arr3中。需要注意的是,新建的数组必须有足够的长度来存储两个数组中的所有元素。

方法二:使用STL库实现数组拼接

使用STL库中的vector容器可以方便地实现数组拼接,如下所示:

#include <iostream>
#include <vector>
using namespace std;
void showVector(vector<int> v) {
  for (auto it : v)
    cout << it << " ";
  
  cout << endl;
}
int main() {
  vector<int> v1 = 3;
  vector<int> v2 = 4;
  vector<int> v3;
  v3.reserve(v1.size() + v2.size());
  v3.insert(v3.end(), v1.begin(), v1.end());
  v3.insert(v3.end(), v2.begin(), v2.end());
  showVector(v3);
  return 0;
}

这里首先声明了三个vector对象v1、v2和v3,然后通过reserve()方法指定v3容器的大小,insert()方法将v1和v2的元素插入到v3中。最后通过showVector()函数打印v3中的元素。

方法三:使用数组指针实现数组拼接

C++中的数组其实是一个指针,因此可以用指针变量来表示数组并实现数组拼接,如下所示:

int arr1[3] = 1;
int arr2[3] = 4;
int* p1 = arr1;
int* p2 = arr2;
int len1 = sizeof(arr1) / sizeof(int);
int len2 = sizeof(arr2) / sizeof(int);
int len3 = len1 + len2;
int* arr3 = new int[len3];
for (int i = 0; i < len1; i++) {
  *(arr3 + i) = *(p1 + i);
}
for (int i = 0; i < len2; i++) {
  *(arr3 + len1 + i) = *(p2 + i);
}
for (int i = 0; i < len3; i++) {
  cout << *(arr3 + i) << " ";
}
delete[] arr3;

这里将arr1和arr2分别用指针变量p1和p2表示,同时通过sizeof()计算数组的长度,然后新建一个长度为len3的动态数组arr3,并将arr1和arr2的元素复制到arr3中。最后通过循环打印arr3中的元素,并通过delete[]释放arr3占用的空间。

总结

以上就是C++数组拼接的几种方法,需要根据实际需求选择合适的方法。在实际开发中,如果只是简单的拼接,可以使用循环或STL库来实现;而如果对性能要求较高,则可以使用指针实现数组拼接。不管使用哪种方法,都需要注意新建的数组必须有足够的长度来存储两个数组中的所有元素。

  
  

评论区

请求出错了