Объединить две карты, суммируя значения для одинаковых ключей в C ++

У меня дваstd::map<int,int>&nbsp;карты и хотят объединить их в третью карту следующим образом: если на обеих картах найден один и тот же ключ, создайте пару на третьей карте с тем же ключом и значением, которое является суммой значений из первой и второй карты, в противном случае просто скопируйте пару на третью карту. Я подозреваю, что это может быть сделано сstd::accumulate, но я не понимаю этого достаточно хорошо.