我正在尝试传递一个包含长字符串类型的私有地图,其中一个是学生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方法做同样的事情,但是出现了同样的问题。
一些建议会有所帮助,谢谢。
答案 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);
}