我想使用模板类比较两个向量。
vector<Msg> gExpMsg;
vector<Msg> gRevcMsg;
我必须使用template class;
并使用vector
比较2 memcmp
。
你能用C ++代码指导我吗。
先谢谢。
答案 0 :(得分:1)
您可以使用STL等于或不匹配算法来比较两个容器。在这些算法中,您可以根据需要提供自己的谓词仿函数。以下是您可以找到示例代码的链接 mismatch algorithm sample
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;
答案 1 :(得分:0)
如果你想使用memcmp,我建议你查看这个网站: C++ reference - Memcmp
另外,您可以在类Msg中编写方法equals(Msg),并在循环内运行该方法。