-1

我想使用模板类比较两个向量。

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

我必须使用template class;和比较 2vector使用memcmp. 您能否指导我编写 C++ 代码。

提前致谢。

4

1 回答 1

1

您可以使用 STL 相等或不匹配算法来比较两个容器。在这些算法中,您可以根据需要提供自己的谓词函子。以下是您可以找到示例代码 不匹配算法示例的链接

mismatch 返回保存两个容器之间差异的对值(在您的情况下为向量)这是示例中的一些片段以供快速查看

//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 回答