Как реализовать операторы += и + для класса multimap?

/Я пробовал вот так, в операторе += нужно result записать в первый операнд, непонятно как это сделать/

    Multimap& operator +(Multimap& dop) {
        Multimap result;
        map<const string, list<int>>& dop_m = dop.return_map();
        map<const string, list<int>>& result_m = result.return_map();

        for (map<const string, list<int>>::iterator p = m.begin(); p != m.end(); p++) {
            for (list<int>::iterator it = p->second.begin(); it != p->second.end(); it++) {
                result.insert(p->first, *it);
            }
        }

        for (map<const string, list<int>>::iterator p = dop.m.begin(); p != dop.m.end(); p++) {
            for (list<int>::iterator it = p->second.begin(); it != p->second.end(); it++) {
                result.insert(p->first, *it);
            }
        }
        return result;
    }






    /*Multimap& operator +=(Multimap& other) {
        Multimap result;
        map<const string, list<int>>& dop_m = other.return_map();
        map<const string, list<int>>& result_m = result.return_map();

        for (map<const string, list<int>>::iterator p = m.begin(); p != m.end(); p++) {
            for (list<int>::iterator it = p->second.begin(); it != p->second.end(); it++) {
                result.insert(p->first, *it);
            }
        }

        for (map<const string, list<int>>::iterator p = other.m.begin(); p != other.m.end(); p++) {
            for (list<int>::iterator it = p->second.begin(); it != p->second.end(); it++) {
                result.insert(p->first, *it);
            }
        }

        
        
        
        return *this; 
    }*/






    Multimap& operator=(Multimap A) {

        map<const string, list<int>>& dop_m = A.return_map();
        m = dop_m;
        return *this;
    }

Ответы (0 шт):