И это всё МОЁ

Есть ли такое, что бы совместно обходить скажем два std::map в типовых библиотеках? Что бы использовать вместо такого цикла:


std::map<int,T> a;
std::map<int,V> b;

...

for (auto &itr_a : a) {
auto itr_b = b.find(itr_a.first);

// обработка itr_a & itr_b (если есть) по одному ключу
...
}

for (auto &itr_b : b) {
if (!a.count(itr_b.first)) continue;

// обработка itr_b которых не было в a
...
}

В некоторых случаях нужно что бы все элементы обойти, в некоторых только имеющиеся в обоих контейнерах.