在C++中,函数的参数和局部变量具有作用域的概念,它们只能在定义它们的作用域内访问。如果你在一个函数中填充了一个map,那么这个map只能在当前函数中使用。

如果你想在另一个函数中使用填充的map,可以通过以下两种方式实现:

  1. map作为参数传递给另一个函数。你可以将填充的map作为参数传递给另一个函数,这样就可以在另一个函数中使用它。
void function1() {
    std::map<int, std::string> myMap;
    // 填充myMap
    function2(myMap);
}

void function2(std::map<int, std::string>& myMap) {
    // 在这里使用myMap
}
  1. map定义为一个全局变量。如果你想在多个函数中使用相同的map,可以将其定义为一个全局变量。这样,它就可以在整个程序中访问。
std::map<int, std::string> myMap;

void function1() {
    // 填充myMap
}

void function2() {
    // 在这里使用myMap
}

需要注意的是,全局变量的使用可能会导致代码的可读性和维护性下降,因此应该谨慎使用全局变量。

此外,还有其他一些方法可以在函数之间共享数据,例如使用类的成员变量、静态变量等。具体使用哪种方法取决于你的代码结构和需求

c++一个函数中填充的 map在另一个函数中不能用是什么原因

原文地址: https://www.cveoy.top/t/topic/iauP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录