2013-12-14 28 views
11

Sto lavorando a un'applicazione che tiene traccia della frequenza delle lettere in una stringa. Per fare questo ho creato il seguente StructErrore mappa STL: nessun modello denominato 'mappa' nello spazio dei nomi 'std'; intendevi "max"?

struct MessageLetter{ 
    char letter; 
    int count; 
    MessageLetter(char letter, int freq) 
    : letter(letter), count(freq) 
    {} 
}; 

Ora sto cercando di creare uno STL :: mappa come segue ...

std::map<std::string, MessageLetter> lList; 
    for(int i = 0; i < output.length(); i++){ 
    std::cout << i << output[i] << std::endl; 
    if(lList.find(output[i]) == lList.end()){ 
     std::cout << "Letter not found" << std::endl; 
     MessageLetter m = {output[i],1}; 
     lList[output[i]] = m; 
    } 
    else{ 
     std::cout << "Letter found" << std::endl; 
    } 
    } 

Quando provo a compilare questo ricevo il seguente ..

test.cpp:95:8: error: no template named 'map' in namespace 'std'; did you mean 'max'? 
    std::map<std::string, MessageLetter> lList; 

Sono nuovo al C++ quindi qualsiasi guida sarebbe ottima. E se questo è un duplicato sarò felice di rimuovere. Eventuali altre informazioni (versione C++, ecc.) Saranno fornite se necessario. Questa sarà alla fine un'app Android nativa.

+4

Sembra che tu abbia semplicemente dimenticato di "#includere ". –

+2

Hai '#include '? – Praetorian

risposta

29
#include <map> 

Problema risolto.

+0

oops sì, suppongo di averlo importato tutto sotto un'importazione standard o qualcosa del genere. Sapevo che doveva essere facile. – Jackie

Problemi correlati