2016-04-23 119 views
-2

我想創建結構的多重映射的多重映射,我已經聲明瞭一個結構創建結構

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 this throwows

error: no match for ‘operator[]’

爲什麼會發生這種情況,我該如何修復它?此外,這兩者的實現有何不同?

回答

3

這與結構無關;你會遇到與int相同的問題(縮小你的問題!)。問題是你沒有查找如何使用多圖。

在地圖上,[]運算符爲您提供與某個鍵對應的值。

在multimap中,整個觀點是每個鍵可以對應多個值,所以不能有一個[]運算符。

改用insert函數。

諮詢documentation爲您使用的語言功能,而不是猜測然後放棄!