c++ - 如何将二维 map 作为函数指针传递

标签 c++ pointers dictionary

我有 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/

相关文章:

python - 根据用户输入创建带键的字典

c++ - 如何让作家线程饿死

c++ - 在 C++ 中迭代 std::set<std::string> 时出现段错误

c++ - 如何将 std::string 转换为 QString

pointers - 如何获取变量的地址并在 nasm x86 程序集中取消引用它?

python - 来自多维字典的键的切片

c++ - 为什么并行化会如此显着地降低性能?

c++ - 直接内存访问,使用指向地址的指针

c - 指向数据类型和数据成员的指针之间的区别

python - 根据变量调用方法的方法?