Мне нужно заменить несколько значений внутри STL map
, но я не нашел ничего полезного в <algorithm>
.Заменить несколько элементов на карте STL
псевдокод:
Input:
map<type1, type2> m1;
m1[k1] = v1;
m1[k2] = v2;
m1[k3] = v3;
map<type1, type2> m2;
m2[k1] = v5;
m2[k3] = v4;
Action:
merge(m1, m2)
Output:
m1[k1] = v5;
m1[k2] = v2;
m1[k3] = v4;
Метод merge
должен заменить m1
значения с m2
значениями, когда ключи матча.
Я прочитал документацию merge, но мне кажется, что ее нельзя использовать с картами.
'зЬй :: копию (m1.begin(), m1.end(), std :: inserter (m2, m2.begin())); 'будет вставлять в' m2' элементы, которые существуют и имеют различное значение в 'm1', я думаю, что результат тот же –
@Piotr: ваше решение добавляет в 'm2' пару k2/v2. Я попытался поменять 'm1' и' m2' внутри 'copy', но это не сработает. –
* "будет вставляться в м2 элементов, которые существуют и имеют разное значение в m1" * –