C++ 两个vector对象拼接方式
猿六凯 人气:0两个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]; }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容