我想使用模板類來比較兩個向量。將C++中的兩個向量與模板類相比較
vector<Msg> gExpMsg;
vector<Msg> gRevcMsg;
我必須使用template class;
和使用memcmp
比較2 vector
。 你能指導我在代碼C++。
在此先感謝。
我想使用模板類來比較兩個向量。將C++中的兩個向量與模板類相比較
vector<Msg> gExpMsg;
vector<Msg> gRevcMsg;
我必須使用template class;
和使用memcmp
比較2 vector
。 你能指導我在代碼C++。
在此先感謝。
如果你想使用memcmp,我建議要檢查這個網站: C++ reference - Memcmp
Otherwhise,你可以寫的方法在您的類消息的equals(MSG),並且,在一個循環中,運行的方法。
您可以使用STL等於或不匹配算法來比較兩個容器。在這些算法中,如果你願意,你可以給你自己的謂詞仿函數。下面是在這裏你可以找到示例代碼 mismatch algorithm sample
不匹配返回(在你的情況下,其向量)持有兩個容器之間的差異對值 下面的鏈接從樣品的一些片斷快速瀏覽
//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;
你可以發佈你到目前爲止的代碼嗎?順便說一下,'memcpy()'副本,它不會比較。 – hmjd
對不起.. memcpy ... memcmp – user1042979
template> Msg Validate(Msg m1,Msg m2) { memcmp(); //我必須爲m1和m2做 } –
user1042979