Outils d'utilisateurs

Outils du Site


pair_et_tuple

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

pair_et_tuple [2014/05/28 12:33]
gbdivers créée
pair_et_tuple [2016/07/05 18:55] (Version actuelle)
gbdivers
Ligne 2: Ligne 2:
 ^ Chapitre précédent ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ Chapitre suivant ^ ^ Chapitre précédent ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ Chapitre suivant ^
  
-====== Les paires, tuples et structures ======+====== [Aller plus loin] Les paires, tuples et structures ======
  
 Conteneur = collection d'objets de même type. Par exemple, dans bibliothèque, livre, mais également des dvd Conteneur = collection d'objets de même type. Par exemple, dans bibliothèque, livre, mais également des dvd
  
-Pair = 2 éléments (first et second), de type différents. Création avec make_pair+Pair = 2 éléments (first et second), de type différent. Création avec make_pair
  
 Tuple = N éléments, création avec make_tuple. Tuple = N éléments, création avec make_tuple.
  
-Inconvénient : non nommé, pas de sens sémantique. Par exemple pair<string, string> peut représenter un nom et prénom, un titre de livre et auteur, une marque de voiture et un modèle, etc. Cela dit juste que l'on à 2 string, mais de donne pas de sens à ces string.+Inconvénient : non nommé, pas de sens sémantique. Par exemple pair<string, string> peut représenter un nom et un prénom, un titre de livre et un auteur, une marque de voiture et un modèle, etc. Cela dit juste que l'on 2 string, mais ne donne pas de sens à ces string.
  
-Structure = N éléments de type différents, avec des noms. Agrégation de variables (avec nom, type et valeur). Nom de structure.+Structure = N éléments de type différent, avec des noms. Agrégation de variables (avec nom, type et valeur). Nom de structure.
  
 Par exemple : Par exemple :
Ligne 38: Ligne 38:
 struct Personne { struct Personne {
     string nom {};     string nom {};
-    int age {}+    int age {};
     double taille {};     double taille {};
     bool masculin { true };     bool masculin { true };
Ligne 54: Ligne 54:
 struct Personne { struct Personne {
     Identite identite {};     Identite identite {};
-    int age {}+    int age {};
     double taille {};     double taille {};
     bool masculin { true };     bool masculin { true };
 }; };
 +
 +Personne personne {};
 +personne.age = 24;
 +personne.identite.nom = "toto";
 </code> </code>
  
Ligne 69: Ligne 73:
  
 Accéder aux variable membres. En lecture et en écriture Accéder aux variable membres. En lecture et en écriture
 +
 +Généricité ? Ajouter un type template, permet de modifier la structure de données. Par exemple :
 +
 +<code>
 +template<typename T>
 +struct Personne {
 +    T identifiant {};
 +    string nom {};
 +    string prenom {};
 +};
 +</code>
 +
 +Utilisation :
 +
 +<code>
 +Personne<int> personne_avec_numero_secu {};
 +personne_avec_numero_secu.identifiant = 12234567897;
 +
 +
 +Personne<string> personne_avec_autre {};
 +personne_avec_autre.identifiant = "1a4slsn";
 +
 +// utilisation possible avec aussi des structures 
 +Personne<int> personne_avec_identifiant {};
 +personne_avec_identifiant.identifiant.nom = "toto";
 +personne_avec_identifiant.identifiant.prenom = "dupont";
 +</code>
 +
 +Remarque : déjà rencontré des types génériques : vector et array. Même principe, mais avec plus de fonctionnalités. On verra par la suite en détail comment ajouter encore plus de fonctionnalités.
  
 ^ Chapitre précédent ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ Chapitre suivant ^ ^ Chapitre précédent ^ [[programmez_avec_le_langage_c|Sommaire principal]] ^ Chapitre suivant ^
  
 {{tag> Cours C++}} {{tag> Cours C++}}
pair_et_tuple.1401273194.txt.gz · Dernière modification: 2014/05/28 12:33 par gbdivers