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

 更新时间:2022年11月07日 09:12:17   作者:猿六凯  
这篇文章主要介绍了C++ 两个vector对象拼接方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

两个vector对象拼接

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

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

class Solution {
public:
    vector<vector<int>> subsets(vector<int>& nums) {
       
        vector<vector<int>> res({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函数合并两个vector

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

具体要求参照标准库.

https://cplusplus.com/reference/algorithm/merge/?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()-1;i++){
      cout<<v3[i]<<" ";
  }
  cout<<v3[v3.size()-1];
}

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

相关文章

  • C语言数据结构 双向链表的建立与基本操作

    C语言数据结构 双向链表的建立与基本操作

    这篇文章主要介绍了C语言数据结构 双向链表的建立与基本操作的相关资料,需要的朋友可以参考下
    2017-03-03
  • C语言结构体数组同时赋值的另类用法

    C语言结构体数组同时赋值的另类用法

    今天小编就为大家分享一篇关于C语言结构体数组同时赋值的另类用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C++引用的使用与const修饰符

    C++引用的使用与const修饰符

    这篇文章介绍了C++引用使用与const修饰符,引用是给已经定义的变量一个别名,可以简单理解成同一个变量的昵称,既然是昵称或者是别名,显然它和原本的变量名有着同样的效力,所以我们对别名进行修改,原本的变量值也一样会发生变化,下面来看看详细内容,需要的朋友可以参考下
    2021-11-11
  • 详解C++语言中std::array的神奇用法

    详解C++语言中std::array的神奇用法

    本文的代码都在C++17环境下编译运行。当前主流的g++版本已经能支持C++17标准,但是很多版本(如gcc 7.3)的C++17特性不是默认打开的,需要手工添加编译选项-std=c++17,具体内容详情跟随小编一起学习吧
    2021-05-05
  • 利用Matlab实现时域分析功能的示例详解

    利用Matlab实现时域分析功能的示例详解

    利用MATLAB可以方便地进行控制系统的时域分析。这篇文章主要通过简单的示例为大家介绍了Matlab进行时域分析的具体操作,需要的可以参考一下
    2023-02-02
  • 使用C语言判断英文字符大小写的方法

    使用C语言判断英文字符大小写的方法

    这篇文章主要介绍了使用C语言判断英文字符大小写的方法,分别为isupper()函数和islower()函数的使用,需要的朋友可以参考下
    2015-08-08
  • 使用C语言实现从avi视频中提取图片

    使用C语言实现从avi视频中提取图片

    这篇文章主要为大家详细介绍了如何使用C语言实现从avi视频中提取图片,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以参考下
    2023-10-10
  • C++ Easylogging++日志库配置使用超详细讲解

    C++ Easylogging++日志库配置使用超详细讲解

    这篇文章主要介绍了C++ Easylogging++日志库配置使用,Easylogging++是用于C++应用程序的单头高效日志库。它非常强大,高度可扩展并且可以根据用户的要求进行配置
    2022-11-11
  • 详解C++数组和数组名问题(指针、解引用)

    详解C++数组和数组名问题(指针、解引用)

    这篇文章主要介绍了详解C++数组和数组名问题(指针、解引用),指针的实质就是个变量,它跟普通变量没有任何本质区别,指针本身是一个对象,同时指针无需在定义的时候赋值,具体内容详情跟随小编一起看看吧
    2021-09-09
  • C语言冷门知识之你可能没听过的柔性数组

    C语言冷门知识之你可能没听过的柔性数组

    柔性数组(Flexible Array)是引入的一个新特性,它允许你在定义结构体时创建一个空数组,而这个数组的大小可以在程序运行的过程中根据你的需求进行更改特别注意的一点是:这个空数组必须声明为结构体的最后一个成员,并且还要求这样的结构体至少包含一个其他类型的成员
    2021-10-10

最新评论