linux下的hash_map的使用问题
我写了个模版,代码如下:
- C/C++ code
#include <ext/hash_map> #include <iterator> #define HASHMAP_PREFIX __gnu_cxx using namespace std; using namespace HASHMAP_PREFIX; template<typename Key, typename Value> class CHashMapTemp { public: CHashMapTemp(){} ~CHashMapTemp(){} Value Find(Key k) { //********* 问题所在 HASHMAP_PREFIX::hash_map<Key, Value>::iterator it = m_HashMap.find(k);//问题就出在这行 return (Value)NULL; } private: protected: HASHMAP_PREFIX::hash_map<Key, Value> m_HashMap; };
程序始终编译不过去,,如果我标准的那行改成
m_HashMap.find(k)
就可以编译过去。
可是这个代码在WINDOWS下可以编译过去,LINUX下怎么也编译不过去,,到底怎么回事????
好像是没有这个,得自己实现。
加typename试试,防止iterator被当成静态变量了