Есть ли такое, что бы совместно обходить скажем два 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
...
}
В некоторых случаях нужно что бы все элементы обойти, в некоторых только имеющиеся в обоих контейнерах.
======================================================
По итогам обсуждений посмотрел я функции set_union, set_intersection, и прочие, и реализовал свой вариант, который можно посмотреть здесь:
https://github.com/victorprogrammist/tool_iterate_ordered_containers