Как реализовать операторы += и + для класса 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;
}