C++ 标准容器不插入新值的问题

Problem with C++ standard container not inserting new values

#include <iostream>
#include<bits/stdc++.h>
using namespace std;

int main() {
    unordered_map<string,set<int>> map;
    set<int> s;
    s.insert(1);
    s.insert(2);s.insert(3);
    map.insert(make_pair("Screen1",s));
    for(auto it : map)
    {
        cout<<it.first<<endl;
        it.second.insert(5);
    }
    for (auto i : map["Screen1"])
    {
        cout<<i<<endl;
    }
}

在上述代码中,我试图在地图内的集合中插入一个值 5。但 it.second.insert(5); 行不通

这是我得到的输出

Screen1
1
2
3

在此循环中:

for(auto it : map)

变量 itmap 中每个元素的副本,因此修改 it 不会修改 map.

如果要修改元素,需要做:

for(auto &it : map)

因此 it 是对 map 中每个元素的引用。