Зацикливая записи в вашем map1
, вы копируете каждый узел.Следовательно, сортировка выполняется для независимого, только что созданного экземпляра std::vector<int>
, и изменения в этой переменной, локальной для цикла (например, сортировка), уже потеряны на следующей итерации.
Вам необходимо изменитьцентральный диапазон для цикла на
for(auto& i : map1) {
// ^ Loop over references to map nodes, not copies!
std::sort(i.second.begin(), i.second.end());
}
Как примечание, когда вы можете использовать C ++ 17, вы можете использовать структурированные привязки, чтобы сделать цикл более выразительным с помощью
for(auto& [key, vec] : map1) {
std::sort(vec.begin(), vec.end());
}