2016-04-23 36 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を使用している場合、これは動作しますが、を使用してこれはスローです

error: no match for ‘operator[]’

どうして私はそれを固定できますか?さらに、これら2つの実装の違いは何ですか?

答えて

3

これは構造体とは関係ありません。 int(問題の絞り込み)で同じ問題が発生します。問題は、マルチマップを使用する方法を調べなかったことです。

マップでは、[]演算子はキーに対応する値を返します。

マルチマップでは、それぞれのキーが複数の値に対応している可能性があるため、[]演算子は使用できません。

代わりにinsert関数を使用してください。

あなたが推測あきらめるのではなく、使用している言語機能のdocumentationにご相談ください!

関連する問題