0

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;

                   }
4

1 に答える 1

3

2 番目のベクトルを並べ替える方法を見てください。

sort(pdb_b_list.begin(),pdb_a_list.end());  

間違った終了インデックスを挿入していますpdb_**b**_list.end()

于 2012-12-10T17:07:51.040 に答える