C++ 兩個vector對象拼接方式
更新時間:2022年11月07日 09:12:17 作者:猿六凱
這篇文章主要介紹了C++ 兩個vector對象拼接方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
兩個vector對象拼接
今天刷leetcode,需要將兩個相同類型的vector拼接,發(fā)現(xiàn)不能像python一樣使用+號處理。
經(jīng)過查閱資料,可以使用insert()函數(shù)。
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函數(shù)合并兩個vector
在完成合并兩個vector的時候糾結這個合并操作如何實現(xiàn),經(jīng)過搜索后發(fā)現(xiàn)可以用c++ algorithm的merge函數(shù)實現(xiàn)合并和排序這兩個功能。
具體要求參照標準庫.
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];
}以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

