Мне интересно, возможно ли только при использовании некоторых стандартных алгоритмов написать короткую функцию, которая сравнивает два std::map<string, string>
и возвращает 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". Первая попытка была бы очень неэффективной двойной вложенной петлей. Я уверен, что лучшее решение может быть достигнуто.