如果你的unordered_map頭文件報錯請看這里


請將include<unordered_map>頭文件換成下面代碼

 1 #if(__cplusplus == 201103L)
 2 #include <unordered_map>
 3 #include <unordered_set>
 4 #else
 5 #include <tr1/unordered_map>
 6 #include <tr1/unordered_set>
 7 namespace std
 8 {
 9     using std::tr1::unordered_map;
10     using std::tr1::unordered_set;
11 }
12 #endif

這個解決方法主要是依靠 __cplusplus 這個宏在不同C++版本中的值不同。 對於(能夠使用且)使用了 -std=c++0x 或者 -std=c++11 編譯選項的編譯過程,__cplusplus 的值是 201103L,否則則是其他值。

結論

上述方法最低大概只能支持到C++98這個標准了,因為到了C++98才開始有tr1/unordered_map,所以你的編譯器如果連C++98都不支持的話,那就乖乖用遠古時代流傳至今的map吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM