2013-03-25 2 views
1

мне нужно сравнить два Multimap объектов, чтобы выяснить, являются ли они равны или нетСравнение два Multimap объектов в C++

я знаю, используя зЬй :: равных, мы можем сравнить два вектора объект равенство, но можно использовать этот алгоритм для сравнения с объектами multimap?

typedef std::multimap<std::string, std::string> HeaderMap; 
HeaderMap _map,_secMap; 


_map.insert(HeaderMap::value_type("A", "a")); 
_map.insert(HeaderMap::value_type("B", "b")); 

_secMap.insert(HeaderMap::value_type("A", "a")); 
_secMap.insert(HeaderMap::value_type("B", "b")); 



**std::equal(_map.begin(),_map.end(),_secMap.begin()); // is this true?** 

если выше фрагмент кода не так, как я могу сравнить два Multimap объекты? (Я не муравей итерацию объектов и сравнения ключей и значений по одному) благодаря

+0

Вы хотите, чтобы мы запускали ваш код для вас и сообщали вам результат? – Fiktik

+0

Возможный дубликат http://stackoverflow.com/questions/8559820/compare-two-multimaps-c –

+0

FikTik:> не только предлагайте мне способ, которым я использую его для сравнения с объектами multimap. Если их содержимое равно true еще возвращайтесь. –

ответ

2

Вы можете сравнить их с operator==:

map_ == secMap_; 

Это будет внутренне сравнивать элементы один за другим, пока первый неравный один не найден. Нет способа избежать этого. Вот рабочий пример:

#include <map> 
#include <string> 
#include <iostream> 

int main() 
{ 
    typedef std::multimap<std::string, std::string> HeaderMap; 

    HeaderMap m1, m2, m3; 

    m1.insert(HeaderMap::value_type("A", "a")); 
    m1.insert(HeaderMap::value_type("B", "b")); 

    m2.insert(HeaderMap::value_type("A", "a")); 
    m2.insert(HeaderMap::value_type("B", "b")); 

    m3.insert(HeaderMap::value_type("A", "a")); 
    m3.insert(HeaderMap::value_type("B", "b")); 
    m3.insert(HeaderMap::value_type("C", "c")); 


    std::cout << std::boolalpha; 
    std::cout << (m1==m2) << " " << (m1==m3) << std::endl;  
} 

Выход:

истинная ложь

Имейте в виду, что имена с ведущими подчеркиванием зарезервированы для реализации, так что вы не должны использовать их.

Смежные вопросы