Hash map na Linuxu

Uživatelský avatar
Eubie
Matfyz(ák|ačka) level III
Příspěvky: 295
Registrován: 8. 10. 2005 15:35
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Hash map na Linuxu

Příspěvek od Eubie »

Ahoj,
potřeboval bych rozběhnout hash map na Linuxu. Něco, co pod Widlema vypadá takhle:

Kód: Vybrat vše

#include <hash_map>
struct Mensi_String{	
	bool operator()( const char * A, const char * B) const { return (strcmp(A, B) < 0);};	//definujeme si na retezcich usporadani
	size_t operator() (const char* __s) const
		{
		unsigned long __h = 0;
		for ( ; *__s; ++__s)
		__h = 5*__h + *__s;
		return size_t(__h);
		}
	};
typedef stdext::hash_map< const char *, unsigned int , stdext::hash_compare< const char *, Mensi_String > > THash_Mapa;
Když tohle přenesu na Unix, první věc je, že nezná hash_map knihovnu, je potřeba nahradit za ext/hash_map. Potom to nemá v namespacu stdext ale __gnu_cxx, ALE šablonu hash_compare už Unix nepozná, resp. ne v tomhle namespace (tj. ani stdext, ani __gnu_cxx). Už sem zkusil dvě hodiny googlit a nic. Nemá někdo zkušenost? Byl bych vděčnej i na link na dokumentaci C++ pro Linux (ale ne ty povrchní, kterých je na netu dva pytle). Linux se ohání tím, jak má vše super zdokumentováno, ale skutek jakoby utek (bez urážky).
qk
Matfyz(ák|ačka) level III
Příspěvky: 181
Registrován: 24. 2. 2005 10:03
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Příspěvek od qk »

no normalni kontejnery z STL mi fungujou normalne, takze netusim kde je problem. Ale Unix ma tu vyhodu ze mas k dispozici zdrojaky, takze neni nic lehciho nez se do nich kouknout ;)

P.S. kompiloval si to gcc nebo g++ ???
Don't worry, be dead
Uživatelský avatar
Eubie
Matfyz(ák|ačka) level III
Příspěvky: 295
Registrován: 8. 10. 2005 15:35
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Příspěvek od Eubie »

g++.
On je právě problém, že hash_map ještě není součástí C++ normy, tudíž ani STLka.
qk
Matfyz(ák|ačka) level III
Příspěvky: 181
Registrován: 24. 2. 2005 10:03
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Příspěvek od qk »

Eubie píše:g++.
On je právě problém, že hash_map ještě není součástí C++ normy, tudíž ani STLka.
tak si stahni napriklad jeho SGI implementaci a nepouzivej systemovou(kdyz neni), ale tu jejich ;)
Don't worry, be dead
bilbo
Matfyz(ák|ačka) level I
Příspěvky: 13
Registrován: 6. 6. 2005 17:22

Re: Hash map na Linuxu

Příspěvek od bilbo »

Eubie píše: Když tohle přenesu na Unix, první věc je, že nezná hash_map knihovnu, je potřeba nahradit za ext/hash_map. Potom to nemá v namespacu stdext ale __gnu_cxx, ALE šablonu hash_compare už Unix nepozná, resp. ne v tomhle namespace (tj. ani stdext, ani __gnu_cxx). Už sem zkusil dvě hodiny googlit a nic. Nemá někdo zkušenost? Byl bych vděčnej i na link na dokumentaci C++ pro Linux (ale ne ty povrchní, kterých je na netu dva pytle). Linux se ohání tím, jak má vše super zdokumentováno, ale skutek jakoby utek (bez urážky).
Skus toto:
http://gcc.gnu.org/onlinedocs/libstdc++ ... index.html
http://gcc.gnu.org/onlinedocs/libstdc++ ... __map.html
Mozno to pomoze.
Schvalne som pozrel SGI STL manual a hash_compare tam nie je, takze to bude asi nejake ine rozsirenie, nie od SGI.
Uživatelský avatar
Eubie
Matfyz(ák|ačka) level III
Příspěvky: 295
Registrován: 8. 10. 2005 15:35
Typ studia: Informatika Bc.
Kontaktovat uživatele:

Příspěvek od Eubie »

Diiky mnohokrat.
Odpovědět

Zpět na „2005“