我正在尝试创建一个结构的多图,我已经声明了一个结构
struct Student{
Student(){};
Student( string n , int a ){
name = name;
age = age;
}
string name;
int age;
}
创建了一个多图
multimap< string , Student > classRoom;
并创建了一个应该在多图中推送它的函数
void addStudent( string name , int age ){
Student tmp( name , age );
classRoom[ name ] = tmp;
}
如果我使用典型map
这可行,但使用multimap
会抛出
错误:不匹配'operator []'
为什么会发生这种情况?我该如何解决这个问题?此外,这两个实现有何不同?
答案 0 :(得分:3)
这与结构无关;对int
你有同样的问题(缩小你的问题!)。问题是你没有查找如何使用多图。
在地图中,[]
运算符会为您提供与键对应的值。
在多图中,整点是每个键可能对应多个值,因此不能有[]
运算符。
请改用insert
功能。
咨询 documentation ,了解您使用的语言功能,而不是猜测然后放弃!