创建结构的多重映射

时间:2016-04-23 12:17:30

标签: c++ multimap

我正在尝试创建一个结构的多图,我已经声明了一个结构

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 []'

为什么会发生这种情况?我该如何解决这个问题?此外,这两个实现有何不同?

1 个答案:

答案 0 :(得分:3)

这与结构无关;对int你有同样的问题(缩小你的问题!)。问题是你没有查找如何使用多图。

在地图中,[]运算符会为您提供与键对应的值。

在多图中,整点是每个键可能对应多个值,因此不能有[]运算符。

请改用insert功能。

咨询 documentation ,了解您使用的语言功能,而不是猜测然后放弃!