Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
794 connectés 

  FORUM HardWare.fr
  Programmation

  [C++] 2 questions : <string> et comparaison ; <vecteur> et pointeurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] 2 questions : <string> et comparaison ; <vecteur> et pointeurs

n°16994
Willytheki​d
Posté le 05-03-2001 à 05:16:13  profilanswer
 

salut,
 
2 questions, en fait...J'ai deja cherche un peu partout sur le web et je n'ai pas trouve de reponse satisfaisante...Je m'en remets a vous :)
 
1) <string>
Y a-t-il une fonction (membre ou non) de string qui me permette de comparer 2 variables "string" independemment des majuscules / minuscules...
J'essaie d'eviter autant que possible l'utilisation de <string.h> et d'utiliser <string>
Si une telle fonction n'existe pas :(, y en a-t-il au moins une qui fasse passer de minuscule a majuscule ?
 
2) <vector>
Une question sur la maniere dont un vecteur garde les variables qu'on lui donne. vector ne garde-t-il que des pointeurs ?
La question peut paraitre anodine mais voila le code en question :
 
dans le int main()
      vector<Territory> territories;
      Initiate_Territories(territories);
 
la fonction Initiate_Territories(vector<Territory> &territories)
      territories.push_back(Territory());
      territories[i].SetName(info);
 
SetName est une fonction membre de Territory qui definie le nom (tiens donc :) )
Le truc c'est que si vector emmagasine juste des pointeurs, je cree alors un pointer sur un Territory qui n'existe juste que dans le cadre de ma fonction...Apres la fin de la fonction mon pointeur pointe sur...rien :) D'ou la merde :)
 
Alors, est-ce vraie ? (oui j'ai la flemme de regarder le fichier :) )
 
Merci bcp :)


---------------
Si t'es pas net, reste a la buvette
mood
Publicité
Posté le 05-03-2001 à 05:16:13  profilanswer
 

n°17026
Willytheki​d
Posté le 05-03-2001 à 11:54:18  profilanswer
 

Bon...ca a pas l'air d'inspirer grand monde alors je reviens a la charge :)
 
1) Pour la premiere question, c'est regle...J'ai pas fignole (ca n'a pas d'interet) et j'ai reutilise <string.h> pour eviter d'ecrire ma propre fonction pour <string>.
 
2) Pour la deuxieme question...une reponse m'interesse toujours !  
En attendant, comme j'ai le sentiment d'avoir raison :) j'ai utilise des pointers...Mon vecteur emmagasine donc des pointeurs sur une classe Territory au lieu de simple objet Territory...


---------------
Si t'es pas net, reste a la buvette
n°17047
verdoux
And I'm still waiting
Posté le 05-03-2001 à 13:45:38  profilanswer
 

En général, quand les objets sont gros, on utilise des containers de pointeurs sur les objets.

n°17084
minusplus
Posté le 05-03-2001 à 17:07:55  profilanswer
 

C'est bizarre comment tu traites le problème !
 
Avec les infos que tu donnes, moi je ferais :
 
void Initiate_Territories(vector<Territory> &T){
  Territory* t;
 
  t = new Territory("machin truc" ); // pour lui donner un nom avec un   constructeur adéquat  
// ou alors avec un constructeur par défaut suivit de  
// t->Setname("machin truc" );
  T.push_back(*t);
};
 
Si tu veux stocker des pointeurs, c'est pareil sauf :
 - la déclaration de ton vector (évidemment !)
 - et le T.push_back(t);

 

--Message édité par minusplus--

n°17124
SoWhatIn22
Posté le 05-03-2001 à 19:49:39  profilanswer
 

la fonction push_back utilise le constructeur de recopie de l'objet que tu utilises. Si tu n'en n'as pas défini, alors le constructeur de recopie par défaut est utilisé (recopie à plat).
 
Donc si ton objet contients des pointeurs:
- soit tu as défini 1 constructeur par recopie qui alloue la mémoire (avec un destructeur qui la désalloue, of course)
- soit il fait une recopie à plat (il ne garde 'que' le pointeur.

n°17172
Willytheki​d
Posté le 06-03-2001 à 02:44:20  profilanswer
 

minusplus, SoWhat et Verdoux, ...j'ai utilise votre solution. C'est effectivement LE truc a faire! J'ai du pete un plomb sur mon code et ne pas le voir :)
D'ailleurs je me demande comment vous avez pu comprendre ce que j'ai dis...c'est tout sauf clair :)
 
Bref merci !


---------------
Si t'es pas net, reste a la buvette

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] 2 questions : <string> et comparaison ; <vecteur> et pointeurs

 

Sujets relatifs
[C/C++] GetUsername, les !$%$?% de pointeurscomment inclure un caractere 'NewLine' dans une String en java ?
[C++] trier un vector avec une fonction de comparaisonch'tit questions...
[VC++6.0 ,MFC] Questions sur du client-serveur...Débutant Visual C++ avec MFC, qui peut répondre à quelques questions?
Questions en vrac : Delphi, ASP 
Plus de sujets relatifs à : [C++] 2 questions : <string> et comparaison ; <vecteur> et pointeurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR