-1

テンプレート クラスを使用して 2 つのベクトルを比較したい。

vector<Msg> gExpMsg;
vector<Msg> gRevcMsg;

を使用して2を使用しtemplate class;て比較する必要があります。C++ のコードを教えてください。vectormemcmp

前もって感謝します。

4

1 に答える 1

1

STL の等しいまたは不一致のアルゴリズムを使用して、2 つのコンテナーを比較できます。これらのアルゴリズムでは、必要に応じて独自の述語ファンクターを指定できます。以下は、サンプル コードの不一致アルゴリズム サンプルを見つけることができるリンクです。

不一致は、2 つのコンテナー間の違いを保持するペアの値を返します (この場合、そのベクトル)

//find first mismatch
pair<vector<int>::iterator,list<int>::iterator> values;
values = mismatch (coll1.begin(), coll1.end(), //first range
                      coll2.begin());    //second range
if (values.first == coll1.end()) 
  cout <<"no mismatch"<<endl;     
else
  cout <<"first mismatch: "<<*values.first<<" and "<<*values.second<<endl;

述語付き

values = mismatch (coll1.begin(), coll1.end(), //first range
                       col12. begin(),   //second range
                       less_equal<int>() )  //criterion
if (values.first == coll1.end()) 
  cout <<"always less-or-equal"<<endl;
else 
  cout <<"not less-or-equal: "<<*values.first<<" and "          
                            <<*values.second<<endl;
于 2013-01-03T12:05:39.443 に答える