Мне интересно, можно ли, применяя некоторые стандартные алгоритмы, написать короткую функцию, которая сравнивает две std::map
и возвращает true, если все пары ключ-значение (но некоторые) истинны.
Например, эти две карты должны быть оценены как равные
map<string,string> m1, m2;
m1["A"]="1";
m2["A"]="1";
m1["B"]="2";
m2["B"]="2";
m1["X"]="30";
m2["X"]="340";
m1["Y"]="53";
m2["Y"]="0";
Предположим, что две карты имеют одинаковый размер и все их элементы должны быть попарно сравнены, кроме значения, хранящегося по ключу "X" и по ключу "Y". Первой попыткой будет очень неэффективный двойной вложенный цикл for. Я уверен, что можно найти лучшее решение.