我有 2 张 map :
map<int, map<int, int> > m1;
map<int, map<int, int> > m2;
并想用函数填充它们:
void fillMaps (m1, m2) {
* m1[0][0] = 5;
* m2[0][1] = 4;
}
我应该如何将这些映射传递给函数? 我想变量本身可以像这样传递:
map<int, map<int, int> > m1;
map<int, map<int, int> > m2;
fillMaps(m1, m2);
但是我应该如何在函数内定义变量类型才能更改 map 的值?
最佳答案
要更改函数中的映射,您需要通过引用传递它们:
void fillMaps (map<int, map<int, int> >& m1, map<int, map<int, int> >& m2) {
m1[0][0] = 5;
m2[0][1] = 4;
}
请注意,尖括号之间有空格,以防止出现奇怪的编译器错误。另请注意,通过引用传递,您不需要使用任何指针取消引用;这是自动处理的。
关于c++ - 如何将二维 map 作为函数指针传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4701837/