std::vector<struct::event>::iterator it;
std::vector<struct::event>::iterator last=myvector.end();
for (it=myvector.begin(); it<=last; it++){
if(mysignal.declination<(*last).declination){
if (mysignal.declination>=(*it).declination && mysignal.declination<(*(it+1)).declination){
myvector.insert(it+1, mysignal);
break;
}
}
if (mysignal.declination>=(*last).declination){
myvector.push_back(mysignal);
break;
}
}
赤緯でソートされたイベントを含むmyvectorというベクトルがあります。ここで、mysignalをこのベクトルの適切な場所に追加します。しかし、if(mysignal.declination <(* last).declination)を参照するいくつかのイベントの後に、常にセグメンテーション違反が発生します。何が悪いのかわかりません。