Combine dos mapas, sumando valores para las mismas claves en C ++

tengo dosstd::map<int,int>&nbsp;los mapas y desean fusionarlos en un tercer mapa como este: si se encuentra la misma clave en ambos mapas, cree un par en el tercer mapa con la misma clave y un valor que sea una suma de valores del primer y segundo mapa, de lo contrario solo copia un par al tercer mapa. Sospecho que se puede hacer constd::accumulate, pero no lo entiendo muy bien.