erreur: "liste" n'est pas un membre de ‘std’ et d'erreur: argument de modèle 2 n'est pas valide

J'essaie de compiler mon fichier d'en-tête, mais j'ai des erreurs que je ne peux pas comprendre.

Je veux créer une structure qui contient 3 cartes:
-carte à partir de mots simples dénombrements
-carte de paires de mots pour compte
-carte à partir des mots de la liste de mots suivants

Le code dans mon fichier d'en-tête:

#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <cctype>
#include <vector>
#include <algorithm>
#include <map>

typedef struct {

    std::map<std::string, int> firstCounts;
    std::map<std::string, int> pairCounts;
    std::map<std::string, std::list<std::string>> follows; //You can use an iterator to retrieve the values stored in the list. 

} LanguageModel;

Et les erreurs que j'obtiens:

>   LangModel.h:24:23: error: list is not a member of std
>      std::map<std::string, std::list<std::string>> follows; //You can use an iterator to retrieve the values stored in the list. 
>                            ^
>     LangModel.h:24:23: error: list is not a member of std
>     LangModel.h:24:38: error: template argument 2 is invalid
>      std::map<std::string, std::list<std::string>> follows; //You can use an iterator to retrieve the values stored in the list. 
>                                           ^
>     LangModel.h:24:38: error: template argument 4 is invalid
>     LangModel.h:24:44: error: expected unqualified-id before ‘>’ token
>      std::map<std::string, std::list<std::string>> follows; //You can use an iterator to retrieve the values stored in the list.

OriginalL'auteur NewToThis | 2015-04-01