сравнить два вектора в c ++ с шаблоном класса

Я хочу сравнить два вектора, используя шаблон класса.

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

я должен использовать template class; и сравнить 2 vector с помощью memcmp,
Не могли бы вы привести меня в код C ++.

Заранее спасибо.

-1

Решение

Вы можете использовать STL равные или несовпадающие алгоритмы для сравнения двух контейнеров. В этих алгоритмах вы можете указать свой собственный предикатный функтор, если хотите. Ниже ссылка, где вы можете найти пример кода
пример несоответствия алгоритма

рассогласование возвращает значения пары, которая содержит различия между двумя контейнерами (в вашем случае это вектор)
Вот фрагмент из примера для быстрого просмотра

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

Другие решения

Если вы хотите использовать memcmp, я предлагаю проверить этот сайт:
C ++ ссылка — Memcmp

В противном случае вы можете написать метод equals (Msg) в вашем классе Msg и запустить цикл внутри цикла.

0

По вопросам рекламы [email protected]