21xrx.com
2024-11-22 07:45:33 Friday
登录
文章检索 我的文章 写文章
合并两个C++向量成为一个
2023-07-04 21:41:28 深夜i     --     --
C++向量 合并 向量操作 容器 STL

在C++中,vector是一种非常方便的容器,可以用于存储任何类型的数据,并支持动态调整大小。有时候,我们需要将两个vector合并成一个,以便更方便地对它们进行操作。本文将介绍如何将两个C++向量合并成一个。

方法一:使用insert函数

vector容器提供了insert函数,可以用于在vector的指定位置插入元素。可以使用该函数将一个vector的所有元素插入到另一个vector中,以实现向量合并的目的。

下面是将两个vector合并为一个的示例代码:


#include <vector>

#include <iostream>

int main()

{

  std::vector<int> vec11;

  std::vector<int> vec24;

  

  vec1.insert(vec1.end(), vec2.begin(), vec2.end());

  for (auto i : vec1)

  

    std::cout << i << " ";

  

  std::cout << std::endl;

  return 0;

}

上述代码中,使用了insert函数来将vec1的末尾位置插入vec2的所有元素。其中,vec2.begin()和vec2.end()分别表示vec2的首尾迭代器,用于指定要插入的元素范围。最终,vec1中的元素变为1 2 3 4 5 6 。

方法二:使用reserve和insert函数

如果插入大量元素到vector中,insert函数的性能可能会受到影响。此时,可以使用reserve函数来预先分配vector的容量,然后使用insert函数插入元素。

下面是使用reserve和insert函数将两个vector合并为一个的示例代码:


#include <vector>

#include <iostream>

int main()

{

  std::vector<int> vec11;

  std::vector<int> vec24;

  

  vec1.reserve(vec1.size() + vec2.size());

  vec1.insert(vec1.end(), vec2.begin(), vec2.end());

  for (auto i : vec1)

  

    std::cout << i << " ";

  

  std::cout << std::endl;

  return 0;

}

上述代码中,使用了reserve函数来分配足够的空间,以便将来插入vec2中的元素。然后,使用insert函数将vec2的元素插入到vec1的末尾中,得到最终的合并向量。

总结

以上是将两个C++向量合并成一个的两种方法。无论是使用insert函数还是结合使用reserve和insert函数,处理合并操作都非常简单。要记住预先分配空间,可以提高插入元素的效率。

  
  

评论区

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