开发者

C++ 两个vector对象拼接方式

开发者 https://www.devze.com 2022-12-02 12:55 出处:网络 作者: 猿六凯
目录两个vector对象拼接merge函数合并两个vejsctor合并两个vector两个vector对象拼接
目录
  • 两个vector对象拼接
  • merge函数合并两个vejsctor
    • 合并两个vector

两个vector对象拼接

今天刷leetcjavascriptode,需要将两个相同类型的vector拼接,发现不能像python一样使用+号处理。

经过查阅资料,可以使用insert()函数。

class Solution {
public:
    vector<vector<int>> subsets(vector<int>& nums) {
       
        vector<vector<int>> jsres({100});
        for (int n : nums) {
            vector<vector<int>> temp;
            for (auto r : res) {
                r.push_back(n);
                temp.push_back(r);
            }
            res.insert(res.end(), temp.begin(), temp.end());//从end()位置开始,将后面的vector拼接在后面(不包括temp.end())。
        }
        return res;
    }
};

merge函数合并两个vevQItsQjNDctor

在完成合并两个vector的时候纠结这个合并操作如何实现,经过搜索后发现可以用c++ algorithm的merge函数实现合并和排序这两个功能。

具体要求参照标准库.

https://cplusplus.com/reference/algorithm/merg开发者_开发学习e/?kw=merge

合并两个vector

#include<IOStream>
#include<algorithm>
#include <vector>
using namespace std;
int main()
{
  vector<int> v1,v2;
  int num1,num2;
  cin>>num1;
  while (num1!=-1)
  {
    v1.push_back(num1);
    cin>>num1;
  }
  cin>>num2;
  while(num2!=-1)
  {
    v2.push_back(num2);
    cin>>num2;
  }
  vector<int> v3;
  v3.resize(v1.size()+v2.size());
  merge(v1.begin(), v1.end(), v2.begin(), v2.end(), v3.begin());
  sort(v3.begin(),v3.end());
  
  for(int i = 0;i<v3.size()vQItsQjND-1;i++){
      cout<<v3[i]<<" ";
  }
  cout<<v3[v3.size()-1];
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号