我正在尝试传递一个私有(private) map ,该 map 采用长字符串类型,其中一个是学生 ID 和学生姓名。我已经这样声明了我的 map :
typedef map<long, string> Student;
我在将其传递到 setter 函数时遇到问题,因为一旦我尝试在此函数中声明 Student,我就无法访问 map 方法。
理想情况下,我试图让这个 set 方法接受我从同一个类声明的其他一些变量,并提供 getter 和 setter 方法。
void SetMap(long studentId, string studentname);
{
Student.insert(pair<long, string>(studentId, studentname);
}
将调用此方法以从文件中获取值。
我知道我可能必须将 Student
传递到参数中,但我不知道如何声明它。
我也尝试对 get 方法执行相同的操作,但出现了同样的问题。
一些建议会有很大帮助,提前致谢。
最佳答案
您的 Student
是一种类型(映射的别名),而不是您可以调用 insert
的实例。您应该修改您的类以包含此 Student
类型的完整声明,如下所示:
typedef map<long, string> Student;
Student studentMap;
现在,您应该能够在 map studentMap
的实例化上调用 insert
:
void SetMap(long studentId, string studentname);
{
studentMap.insert(pair<long, string>(studentId, studentname);
}
关于c++ - 如何传递私有(private) map 并输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56349043/