c++ unordered_map kompilieren Problem mit g++
Ich bin mit g++ unter Ubuntu
g++ (Ubuntu 4.4.3-4ubuntu5) 4.4.3
Habe ich diesen code
#include<unordered_map>
using namespace std;
bool ifunique(char *s){
unordered_map<char,bool> h;
if(s== NULL){
return true;
}
while(*s){
if(h.find(*s) != h.end()){
return false;
}
h.insert(*s,true);
s++;
}
return false;
}
wenn ich kompilieren Sie mit
g++ mycode.cc
Bekam ich Fehler
error: 'unordered_map' was not declared in this scope
Bin ich etwas fehlt?
InformationsquelleAutor icn | 2010-10-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
In GCC 4.4.x, Sie sollten nur verfügen, um
#include <unordered_map>
, und kompilieren Sie mit dieser Zeile:g++ -std=c++0x source.cxx
Mehr Informationen über C++0x support im GCC.
Bearbeiten Sie in Bezug auf Ihr problem
Haben Sie zu tun
std::make_pair<char, bool>(*s, true)
beim einfügen.Außerdem würde der code nur einfügen, einzelnes Zeichen (die Dereferenzierung über
*s
). Beabsichtigen Sie, zu einem einzigenchar
für einen Schlüssel, oder meinst du, um Zeichenfolgen zu speichern?Können Sie zeigen Sie uns den code? Es scheint, Sie versuchen, fügen Sie einen Verweis geben in Ihrer Karte.
aktualisiert, danke
Problem ist gelöst,vielen Dank!
g++ -std=c++11 ist die Letzte jetzt
InformationsquelleAutor wkl
Wenn Sie nicht wollen, um zu kompilieren in C++0x-Modus, ändern Sie die include-und using-Direktive zu
funktionieren sollte
InformationsquelleAutor Hugh