创建结构的多重映射
Creating multimap of structs
我正在尝试创建结构的多重映射,我已经声明了一个结构
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
这会抛出
error: no match for ‘operator[]’
为什么会这样,我该如何解决?此外,这两者的实现方式有何不同?
这与结构无关; int
你会遇到同样的问题(缩小你的问题范围!)。问题是你没有查怎么用multimap
在地图中,[]
运算符为您提供对应于键的值。
在multimap中,重点是每个键可能对应多个值,所以不能有[]
运算符。
改用insert
函数。
请咨询documentation了解您使用的语言功能,而不是猜测然后放弃!
我正在尝试创建结构的多重映射,我已经声明了一个结构
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
这会抛出
error: no match for ‘operator[]’
为什么会这样,我该如何解决?此外,这两者的实现方式有何不同?
这与结构无关; int
你会遇到同样的问题(缩小你的问题范围!)。问题是你没有查怎么用multimap
在地图中,[]
运算符为您提供对应于键的值。
在multimap中,重点是每个键可能对应多个值,所以不能有[]
运算符。
改用insert
函数。
请咨询documentation了解您使用的语言功能,而不是猜测然后放弃!