1A3BA、3B5RE、1WYX5 などのタンパク質 pdb id によって作成された 2 つのベクターがあります。これらの2つのベクトルのタンパク質リストが同じかどうかを比較したい. 違いは何ですか?C++ で stl アルゴリズムを使用しようとしましたが、常にセグメント フォールトが発生します。何が悪いのか教えてくれる人はいますか..?また、並べ替えアルゴリズムについてもよくわかりませんが、とにかく..並べ替えを行ってもコードに問題があっても...
vector<string> pdb_b_list;
vector<string> pdb_a_list;
vector<string> intset;
vector<string>::iterator im;
sort(pdb_a_list.begin(),pdb_a_list.end());
sort(pdb_b_list.begin(),pdb_a_list.end());
if (includes(pdb_a_list.begin(), pdb_a_list.end(), pdb_b_list.begin(), pdb_b_list.end())){
cout << "a includes b"<<endl;
cnt_s++;
}
else if (includes(pdb_b_list.begin(), pdb_b_list.end(), pdb_a_list.begin(), pdb_a_list.end()) ){
cout <<"b includes a" <<endl;
cnt_s++;
}
else {
cout << "different proteins in the sets" <<endl;
cnt_d++;
//sort(pdb_a_list.begin(),pdb_a_list.end());
// sort(pdb_b_list.begin(),pdb_a_list.end());
im = set_intersection(pdb_a_list.begin(),pdb_a_list.end(),pdb_b_list.begin(),pdb_a_list.end(), intset.begin());
cout <<" the intersetion has \t" <<int(im- intset.begin())<<"elements" <<endl;
}