在windows和linux下引⼊hash_set、hash_map头⽂件(转)推荐使⽤⽅法:在源代码的前⾯写⼊⼀下代码:
// just for "#include <hash_*>" in linux
#if __GNUC__>2
#include<ext/hash_set>
#include<ext/hash_map>
using namespace __gnu_cxx;
#else
#include<hash_set>
#include<hash_map>
using namespace stdext;
#endif
其它解释和⽅法:
因为hash_map以前不属于标准库,⽽是后来引⼊的。
所以在windows下需要使⽤stlport,然后在setting中加⼊Additional library path。
在linux下使⽤gcc的时候,引⼊<hash_map>,使⽤的时候也说不到hash_map,⽽这种后来引⼊标准库的有两种可能:
⼀种是它被放在了stdext名空间⾥,那么就要使⽤using namespace stdext引⼊该名空间并#include <hash_map>;
另⼀种可能就是它被放在标准库的ext⽬录底下,这时就仍旧需要使⽤属于std名空间,这时你的源⽂件应当#include <ext/hash_map>;
linux怎么读取windows文件如果不知道是哪⼀种,就需要⾃⼰查⼀下,切换到c++库⽬录下:
cd /usr/include/c++/4.*.*
然后使⽤grep命令:
grep -iR "hash_map" ./
查看hash_map在哪个头⽂件中。
到后进去看⼀下就知道它到底被包含在哪个命名空间中了

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。