我用以下方式编写了代码
#include <iostream>
#include <thread>
#include <map>
using namespace std;
void hi (map<string,map<string,int> > &m ) {
m["abc"]["xyz"] =1;
cout<<"in hi";
}
int main() {
map<string, map<string, int> > m;
thread t = thread (hi, m);
t.join();
cout << m.size();
return 0;
}
我将 2D 地图 m 引用传递给 hi 函数并且我更新了但它没有反映在主函数中。当我打印 m.size() 时,它只打印零。如何使用线程将 2D 地图引用传递给函数?