unorder_map in C++ Builder 10 Seattle
-
Hallo,
ich versuche folgenden Code zum laufen zu bringen. Leider meckert der Compiler aber die unordered_map an. Kann mir jemand helfen?
#include <list> #include <unordered_map> #include <vcl.h> using namespace std; class LRUCache { public: typedef list<pair<int, int> >::iterator list_itr; LRUCache(int cap = 1) : capacity(cap), cache(), itrs() { } int get(int key) { if (itrs.find(key) == itrs.end()) return -1; promote(itrs[key]); return itrs[key]->second; } void set(int key, int value) { if (itrs.find(key) != itrs.end()) { itrs[key]->second = value; promote(itrs[key]); return ; } if (itrs.size() >= capacity) { auto itr = itrs.find(cache.back().first); cache.pop_back(); itrs.erase(itr); } cache.push_front(make_pair(key, value)); itrs[key] = cache.begin(); } private: void promote(list_itr loc) { cache.push_front(make_pair(loc->first, loc->second)); itrs[loc->first] = cache.begin(); cache.erase(loc); } private: list<pair<int, int> > cache; unordered_map<int, list_itr > itrs; int capacity; };
[bcc32 Fehler] uCache.h(47): E2303 Typname erwartet
Vollständiger Parser-Kontext
uCache.cpp(5): #include uCache.h
uCache.h(12): class LRUCache
-
Scheint es erst ab C++11 zu geben und wird daher nicht vom klassischen Compiler (bcc32) unterstützt.
-
Kerem schrieb:
Scheint es erst ab C++11 zu geben und wird daher nicht vom klassischen Compiler (bcc32) unterstützt.
Doch, wird es, benutze:
std::tr1::unordered_map<int, list_itr > itrs;
tr1 steht für "Technical Report 1"
-
Omg thx!
und ich hab noch tr1 und std ausprobiert, aber auf std::tr1 bin ich nicht gekommen