begin process at 2012 05 29 22:28:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Probléme Tableau associatif a 3 champs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probléme Tableau associatif a 3 champs

samedi 26 décembre 2009 à 15:11:20 | Probléme Tableau associatif a 3 champs

jerem3000


Bonjour,

Je suis en train de crée un petit programme serveur => client et j'ai maintenant besoin de stocker le nom d'utilisateur avec la socket qui lui appartient.

J'ai donc pensé a crée un tableau associatif dans ce style :

1 user1 numéro_socket
2 user2 numéro_socket

Le problème c'est que avec std::map je ne peut mètre 3 champs et que les tableau multidimensionnel je n'arrive pas a le faire avec des char.

je pense que vous n'aurait pas de mal a me dire comment faire mais je débute et je commence a désespérer ^^

Merci d'avance

Jérémy
samedi 26 décembre 2009 à 15:35:17 | Re : Probléme Tableau associatif a 3 champs

CptPingu

Administrateur CodeS-SourceS
Bonjour, peux-tu préciser ton problème ? Je n'ai pas compris grand chose.

Si tu veux associer un utilisateur à deux informations, il suffit de l'associer à une paire: "std::map<std::string, std::pair<int, int> > >"
Si tu veux l'associer à plusieurs informations, alors il te faut créer ton propre conteneur ou utiliser un boost::tuple.
samedi 26 décembre 2009 à 15:49:51 | Re : Probléme Tableau associatif a 3 champs

jerem3000


j'ai regarder du coté de std::pair mais après j'ai un problème pour récupérer les valeur.

En gros j'ai mon serveur, pour chaque client il crée un thread. le problème est que chaque thread dois pouvoir faire un send au autre utilisateur et donc connaitre leur socket.

je me suis donc dit que si a chaque thread utilisateur crée je rentré dans un tableau les information néssaire cela résoudrai ce problème.

donc le tableau aurait un nom du style tableau[1] avec comment valeur nom d'utilisateur et numéro du socket.

donc voila tableau[1] aurait comme première valeur un char et en seconde un int mais il me faut qu'il soit identifier par un int (donc la le 1) pour me permettre un envoie a tous les utilisateur par une simple boucle qui incrémente a chaque passage.

Même la cela ne dois pas être très précis&#8230; comme je vous est dit je débute et j&#8217;ai moi même du mal a mi retrouver.

jérémy
samedi 26 décembre 2009 à 15:53:35 | Re : Probléme Tableau associatif a 3 champs

jerem3000

Pour faire simple il me faut faire comme un array en php


jérémy
samedi 26 décembre 2009 à 15:57:27 | Re : Probléme Tableau associatif a 3 champs

CptPingu

Administrateur CodeS-SourceS
Il te faut alors un std::vector. C'est la chose la plus proche de l'array du php.

Du genre: std::vector<std::pair<std::string, int> > tab;
(avec std::string pour le nom de l'utilisateur, et int pour le numéro du socket).

Pour l'utiliser:
tab[numéro] = std::make_pair("Toto", 90);
std::cout << tab[numéro].first << " " << tab[numéro].second << std::endl;
samedi 26 décembre 2009 à 16:10:03 | Re : Probléme Tableau associatif a 3 champs

CptPingu

Administrateur CodeS-SourceS
J'ai oublié de préciser, pour faire un:

tab[numéro] = std::make_pair("Toto", 90);



Il faut que la case au numéro indiqué existe.
Si tu veux le créer à la volée, utilise:


tab.push_back(std::make_pair("Toto", 90));



qui veut dire le mettre à la fin de la liste et l'agrandir de un automatiquement ;)
samedi 26 décembre 2009 à 16:21:39 | Re : Probléme Tableau associatif a 3 champs

jerem3000

Je comprenne pas pourquoi j'avait une méchante erreur :p

C&#8217;est exactement ce qu'il me faut puis sa a l'air asser simple a utiliser :)

Dernière choses d'on j'ai besoin et après j&#8217;aurais tous ce qu'il me faut.

Comment effacer une ligne?

j'ai vus tab.erase() mais que faut t'il mettre comme argument pour sélectionner la ligne?

en tous cas un grand merci cela marche trés bien

jérémy
samedi 26 décembre 2009 à 16:38:10 | Re : Probléme Tableau associatif a 3 champs

jerem3000

j'ai trouver:

tab.erase( tab.begin());

encore merci


jérémy


Cette discussion est classée dans : tableau, champs, socket, probléme, associatif


Répondre à ce message

Sujets en rapport avec ce message

Socket Raw [ par tquille ] Salut,J'utilise les socket en mode Raw et j'inclus l'entete IP à l'emission grace à la ligne suivante :setsockopt(socket,IPPROTO_IP,IP_HDRINCL,(char * connexion entre socket sous MFC [ par seito ] bonjours ,s'il vous plait est ce que quelqu'un peut m'aider j'essai de déveloper une application de chat en réseaux sous "Visual C++ 6.0"le probléme c probléme d'allocation mémoire ? [ par templeofboom ] dans le cadre du développement d'une application de socket sous devcpp je me retrouve bizarrement coincé a cause d'une erreur d'allocation mémoire à Acces à des elements d'un SAFEARRAY de structures [ par wismerhill__ ] Bonjour je veux exporter un UDT VBA vers C++, j'y arrive, mais je ne sais pas comment acceder aux champs de mon UDT ma struct cppstruct DATA {< probléme de programation [ par hamoudito ] double**tableau;  tableau=new double*[this->Input->GetNumberOfCoordinates()]; //ici je mets tuos les points que j'ai en ligne dans le tableau   for(in Tableau en #define [ par boudafc ] Bonjour,je souhaite pouvoir définir dans un #define tout le contenu d'un tableau comme suit:#define CHAMPS "\"TOTO\", \"TATA\", \"TITI\""et dans mon c probléme socket du serveur. [ par jerem3000 ] Bonsoir, Actuellement je commence a apprendre la programmation réseau et j'ai un peut du mal a tous comprendre, j'ai donc commencé a analyser le fonc probléme avec création de tableau d'objet [ par tibob51 ] Bonjour a tous,J'ai lu dans mon bouquin de c++ (j'apprend tout seul par passion) que l'onpeut créer un tableau d'objetexemple:class A{..A(int i);//con Excel 2007, filtrer un tableau croisé dynamique avec 2 champs dépendants [ par Paulo66 ] Bonjour a tous, Je ne suis pas surement pas sur le bon forum mais je ne trouve pas développement office dans la liste déroulant [^^confus5] Je suis Socket probléme [ par andoid ] Bonjour j'ai un serveur avec deux clients multijoueur differents j'ai utilisé select.. Mon probleme est lorsqu'un client place un joueur les autres cl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales