Mesclar dois mapas, somando valores para as mesmas chaves em C ++

Eu tenho doisstd::map<int,int> mapas e deseja mesclá-los em um terceiro mapa como este: se a mesma chave for encontrada nos dois mapas, crie um par no terceiro mapa com a mesma chave e um valor com a soma dos valores do primeiro e do segundo mapa, caso contrário basta copiar um par para o terceiro mapa. Eu suspeito que isso pode ser feito comstd::accumulate, mas não o entendo direito o suficiente.

questionAnswers(3)

yourAnswerToTheQuestion