Table de hashage ??

Résolu
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 11 août 2004 à 15:24
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 12 août 2004 à 13:32
Bj

je souhaite avoir une table associant une liste de chaine clefs à d'autres chaines plus longues

chargées une seule fois, au démarrage

je pensais utiliser les hash_map des stl, mais apparemment, les stl ne sont pas dispo sur mon poste (#include <hash_map> produit une erreur)

quelle autre solution aurait-on ?

Merci

Magic Nono: l'informagicien!

14 réponses

DevGizmo Messages postés 122 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 27 février 2007 1
12 août 2004 à 11:26
Il y a une excellente lib libre, c'est pas en c++ mais en bidouillant tu peux en faire une dll que tu pourras appeller

http://users.footprints.net/~kaz/kazlib.html
3
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
12 août 2004 à 13:32
ben vu que la stl ne fonctionnais po sur ce poste,
je l'ai recrée de tte piece spécifiquement pr ce qui ns interessait ici

=>

http://www.cppfrance.com/code.aspx?ID=25352

dc : merci à ts & je V reparcourir les sites sités histoire de l'améliorer

@+

Magic Nono: l'informagicien!
3
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
11 août 2004 à 15:48
j'ai trouver à la downloader

après avoir rajouter l'include adéquat & le chemin ds le prj voici les nouvelles erreurs :

...\stl\stl_vector.h(174) : warning C4097: typedef-name '_Base' used as synonym for class-name 'vector<_Tp,_Alloc>::_Vector_base<_Tp,_Alloc>'
        ...\stl\stl_vector.h(496) : see reference to class template instantiation 'std::vector<_Tp,_Alloc>' being compiled
...\stl\stl_vector.h(189) : warning C4097: typedef-name '_Base' used as synonym for class-name 'vector<_Tp,_Alloc>::_Vector_base<_Tp,_Alloc>'
        ...\stl\stl_vector.h(496) : see reference to class template instantiation 'std::vector<_Tp,_Alloc>' being compiled
...\stl\stl_vector.h(190) : warning C4097: typedef-name '_Base' used as synonym for class-name 'vector<_Tp,_Alloc>::_Vector_base<_Tp,_Alloc>'
        ...\stl\stl_vector.h(496) : see reference to class template instantiation 'std::vector<_Tp,_Alloc>' being compiled
...\stl\stl_vector.h(191) : warning C4097: typedef-name '_Base' used as synonym for class-name 'vector<_Tp,_Alloc>::_Vector_base<_Tp,_Alloc>'
        ...\stl\stl_vector.h(496) : see reference to class template instantiation 'std::vector<_Tp,_Alloc>' being compiled
...\stl\stl_vector.h(192) : warning C4097: typedef-name '_Base' used as synonym for class-name 'vector<_Tp,_Alloc>::_Vector_base<_Tp,_Alloc>'
        ...\stl\stl_vector.h(496) : see reference to class template instantiation 'std::vector<_Tp,_Alloc>' being compiled
...\stl\stl_vector.h(193) : warning C4097: typedef-name '_Base' used as synonym for class-name 'vector<_Tp,_Alloc>::_Vector_base<_Tp,_Alloc>'
        ...\stl\stl_vector.h(496) : see reference to class template instantiation 'std::vector<_Tp,_Alloc>' being compiled
...ashtable.hpp(40) : error C2143: syntax error : missing ';' before '<'
...ashtable.hpp(40) : error C2501: 'hash_map' : missing storage-class or type specifiers
...ashtable.hpp(40) : error C2059: syntax error : '<'
...ashtable.hpp(40) : error C2238: unexpected token(s) preceding ';'
...ashTable.cpp(36) : error C2065: 'tableHash' : undeclared identifier
...ashTable.cpp(36) : error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'const class BString' (or there is no acceptable conversion)



Magic Nono: l'informagicien!
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
11 août 2004 à 15:59
tes sur que c'est comptpatible avec ta stl ?
et j'ai verifié, hash_map ne fais pas partie du standard, doit y avoir des package ou autre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
11 août 2004 à 16:07
nan, je suis sur de rien

ce que j'ai trouvé est sur cette ref:
http://www.sgi.com/tech/stl/table_of_contents.html

doc & download...

Magic Nono: l'informagicien!
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
11 août 2004 à 16:15
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
11 août 2004 à 16:26
hash_map à la limite je m'en fou, je ve qqch arrivant au résultat,
mm limité à des char*, ça ne me dérange po, au contraire...

Magic Nono: l'informagicien!
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
11 août 2004 à 17:04
implemente ca avec vector et string, ca doit pas etre trop dur
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
11 août 2004 à 18:40
saoul la stl et autres std

voici ma soluce

#include "BString.hpp"
#include "liste/BListeIndir.hpp"
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//#include <hash_map>
#include < utility >

//tmp en attendant mieux!!!
class BPaire
{
public:
BString* getPValeur();
BPaire(){PB1("BPaire NOK");}
BPaire(const BString& cle,const BString& val):clef(cle),valeur(val){}

bool operator<(const BPaire& in){return clef
struct eqstr
{
bool operator()(const char* s1, const char* s2) const  {    return strcmp(s1, s2) == 0;  }
};
  hash_map<const char*, <const char*, hash<const char*>, eqstr> tableHash;
//2e essai, stl tjs
// http://www.sgi.com/tech/stl/PairAssociativeContainer.html
// là du coup, je suis po sur qu'il yt ai hashage mé bon...

  pair<const string,const string> tableHash;
  /*
puis vector...
  po mieu
*/

//solution par défaut
BListeIndirtableHash;

};


avec les BListeIndir deja publiées

certes, y a plus de haschage ni rien mé ça ira en attendant mieu

merci de poursuivre...

++

Magic Nono: l'informagicien!
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
11 août 2004 à 18:57
je C, y a po le #endif

ceci est une soluce temporaire, L fonctionne bien sur mais est loin d'etre satisfaisant,
voila pourquoi ce n'est pas validé !

Donc si qqn voit comment faire fonctionner hash_map
ou possede toute autre bibli remplissant cette fonction
qu'il n'hésite po a rajouter un post...

Magicalement!
0
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
11 août 2004 à 19:57
Ben il me semble plutôt que le header de la STL n'est pas <hash_map> mais <map> ^^

http://www.yrl.co.uk/~phil/stl/stl.htmlx#Map_and_Multimap
http://cplus.about.com/library/weekly/aa120103e.htm

(fruit d'une recherche de 5 mi nsur Google ^^).

Sinon si ça existe pas (ce qui m'étonnerait BEAUCOUP), ça doit être certainement géré dans la librairie Boost (www.boost.org).

Patience et longueur de temps font plus que force
ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
11 août 2004 à 21:24
ouai j'avais deja regarder dans boost, mais me semble pas avoir vu
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
12 août 2004 à 08:51
le include, je l'ai trouvé sur un autre post:
http://www.cppfrance.com/forum.v2.aspx?ID=212302

sinon, G po trouvé sur boost

'ci à vs, ++

Magic Nono: l'informagicien!
0
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
12 août 2004 à 12:53
Oups, ben je me disais que ça devait être dans Boost masi apparemment pas...
C'est donc que ça doit déjà être dans la STL te qu'ils ne l'ont pas reprogrammé je pense ^^
Magic_Nono >> t'es allé voir sur les sites que j'ai mis? Il me semble bien que c'est la classe std::map...

Patience et longueur de temps font plus que force
ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
0
Rejoignez-nous