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

时间:2019-05-28 19:40:10

标签: c++

我正在尝试传递一个包含长字符串类型的私有地图,其中一个是学生ID和学生姓名。我已经这样声明了我的地图:

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方法做​​同样的事情,但是出现了同样的问题。

一些建议会有所帮助,谢谢。

1 个答案:

答案 0 :(得分:1)

您的Student是一种类型(要映射的别名),而不是您可以调用insert的实例。您应该修改您的类,使其包含这种Student类型的完整声明,如下所示:

typedef map<long, string> Student;
Student studentMap;

现在,您应该可以在地图实例化insert上调用studentMap

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