如何传递私有地图和输入数据

How to pass a Private Map and input data

本文关键字:输入 数据 地图 何传递      更新时间:2023-10-16

我正在尝试传递一个私人地图,该地图需要长字符串类型,一个是学生证和学生姓名。我已经声明了我的地图:

typedef map<long, string> Student;

我在将其传递到 setter 函数时遇到问题,因为一旦我尝试在此函数中声明 Student,我就无法访问 maps 方法。

理想情况下,我试图使这个 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;

现在,您应该能够在映射的实例化上调用insertstudentMap

void SetMap(long studentId, string studentname);
{
    studentMap.insert(pair<long, string>(studentId, studentname);
}