このコードを実行すると、次のようなことが起こります:セグメンテーションフォールト(コアダンプ) コードを変更する必要はありますか?セットと配列をC++でベクターにマージするには
#include<iostream>
#include<set>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
int *even=new int[100];
int *temp=new int[100];
for(int i=0;i<100;i++){
even[i]=2*i+2;
temp[i]=2*i+1;
}
set <int,less<int> > odd(temp,temp+100);
vector <int> vec;
merge(even, even+100,odd.begin(), odd.end(), vec.begin());
for(int i=0;i<100;i++){ cout<<"merged vector is:" <<vec[i]<<endl;
}
return 0;
}
へ
奇数のサイズの合計にベクトルのサイズを変更しても、またはSTDを使用:: back_inserier –
好奇心なぜあなたは生の配列を割り当てているだけではなく、一時的のための 'のstd :: vector'sを使用してストレージ。 'temp 'の割り当てが失敗すると' even'が漏れます。 – Mgetz