juanpast
June 24th, 2008, 03:50 AM
Hi Gurus!!
Thanks in advance.
I need to construct a hash table, I use STL hash_map template but I have some errors. I am using Visual Studio 2003 and it is my code:
#include <hash_map>
#include <vector>
struct eqstr {
bool operator()(char* s1, char* s2) {
return strcmp(s1, s2) == 0;
}
};
class CSimplificada {
public:
BOOL nTipo; // 0 S1 1 S2
char sKey[256];
vector <int> vnPosInFile;
CSimplificada() {
sKey[0] = '\0';
nTipo = -1;
vnPosInFile.clear();
}
const CSimplificada & operator = (const CSimplificada &s) {
strcpy(sKey, s.sKey);
nTipo = s.nTipo;
vnPosInFile = s.vnPosInFile;
return *this;
}
bool operator < (const CSimplificada &s) {
if(strcmp(sKey, s.sKey) < 0) return true;
return false;
}
bool operator == (const CSimplificada &s) {
if(strcmp(sKey, s.sKey) == 0 && nTipo == s.nTipo) return true;
return false;
}
};
When I try to declare hash_map, for example:
hash_map <char *,CSimplificada,hash_compare <char*>, eqstr> hashMapS1;
I get compiler errors. Is right the code? what is happening?
Very thanks!!!
Thanks in advance.
I need to construct a hash table, I use STL hash_map template but I have some errors. I am using Visual Studio 2003 and it is my code:
#include <hash_map>
#include <vector>
struct eqstr {
bool operator()(char* s1, char* s2) {
return strcmp(s1, s2) == 0;
}
};
class CSimplificada {
public:
BOOL nTipo; // 0 S1 1 S2
char sKey[256];
vector <int> vnPosInFile;
CSimplificada() {
sKey[0] = '\0';
nTipo = -1;
vnPosInFile.clear();
}
const CSimplificada & operator = (const CSimplificada &s) {
strcpy(sKey, s.sKey);
nTipo = s.nTipo;
vnPosInFile = s.vnPosInFile;
return *this;
}
bool operator < (const CSimplificada &s) {
if(strcmp(sKey, s.sKey) < 0) return true;
return false;
}
bool operator == (const CSimplificada &s) {
if(strcmp(sKey, s.sKey) == 0 && nTipo == s.nTipo) return true;
return false;
}
};
When I try to declare hash_map, for example:
hash_map <char *,CSimplificada,hash_compare <char*>, eqstr> hashMapS1;
I get compiler errors. Is right the code? what is happening?
Very thanks!!!