亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于在C++中vector如何拼接的問題!

關于在C++中vector如何拼接的問題!

函數式編程 2021-10-27 19:15:45
大體意思是如兩個vector<int>vector1元素為{1,2,3}vector2元素為 {5,4,3}想要得到vector3{1,2,3,5,4,3}應該怎么樣做?明顯vector3=vector1+vector2是不可以的vector3.push_back(vector1);也是不可行的如果用set_union順序會亂掉難道一定只有掃一遍過去一個個元素push_back……還有為什么下面這一行也不能編譯?for_each(vector1.begin(),vector1.end(),vector3.push_back);
查看完整描述

2 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

可以將其他vector合并到一個vector中,用vector的insert方法詳細如下:
iterator insert(
iterator _Where,
const Type& _Val
);
void insert(
iterator _Where,
size_type _Count,
const Type& _Val
);
template<class InputIterator>
void insert(
iterator _Where,
InputIterator _First,
InputIterator _Last
);
例子如下(使用了第三種定義):
vector <int> v1;
vector <int> v2;
vector <int> v3;
v3.insert(v3.end(), v1.begin(), v1.end());




查看完整回答
反對 回復 2021-10-31
?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

可以這樣b.insert(b.begin(),a.begin(),a.end());最后有例子程序

for_each(vector1.begin(),vector1.end(),vector3.push_back);失敗是因為最后一個參數要求一個函數對象,不是一個函數指針的問題吧

這里的函數對象是指一個重載了operator()()的類的實例

int main(void)
{
vector<int> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);

vector<int> b;
b.push_back(4);
b.push_back(5);
b.push_back(6);

b.insert(b.begin(),a.begin(),a.end());

for(int i=0;i<b.size();i++)
cout<<b[i];
return 0;
}



查看完整回答
反對 回復 2021-10-31
  • 2 回答
  • 0 關注
  • 1431 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號