Accueil Finances personnelles Comment construire un modèle de structure en C ++ - les mannequins

Comment construire un modèle de structure en C ++ - les mannequins

Vidéo: TUTO HTML & CSS - Créer un site internet de A à Z 2024

Vidéo: TUTO HTML & CSS - Créer un site internet de A à Z 2024
Anonim

Les modèles de structure ont de nombreuses utilisations intéressantes, telles que la création d'un référentiel de données qui ne dépend pas d'un type particulier. L'exemple StructureTemplate montre ici une telle utilisation.

#include utilisant l'espace de noms std; struct template Volume {T hauteur; T largeur; T longueur; Volume () {height = 0; largeur = 0; longueur = 0;} T getvolume () {hauteur de retour * largeur * longueur;} Tvolvolume (T H, T W, T L) {hauteur = H; largeur = W; longueur = L; retour hauteur * largeur * longueur;}}; int main () {Volume premier; cout << "premier volume:" << premier. getvolume () << endl; premier. hauteur = 2; premier. largeur = 3; premier. longueur = 4; cout << "premier volume:" << premier. getvolume () << endl; Deuxième volume cout << "second volume:" << deuxième. getvolume (2.1, 3. 2, 4. 3) << endl; cout << "hauteur:" << seconde. hauteur << endl; cout << "largeur:" << seconde. largeur << endl; cout << "longueur:" << seconde. longueur << endl; return 0;}

Dans ce cas, la structure contient des valeurs de données de hauteur, de largeur et de longueur que le code peut utiliser pour déterminer le volume. La structure inclut un constructeur pour initialiser les valeurs, donc même si quelqu'un appelle getvolume () sans initialiser la structure, rien de mal n'arrivera.

La structure permet un accès indépendant de chacune des valeurs de données. Vous pouvez les définir ou les obtenir au besoin.

La fonction getvolume () est surchargée. Vous pouvez l'appeler avec ou sans valeurs d'entrée. Le code dans main () teste la structure en profondeur. Voici ce que vous voyez en sortie de cet exemple:

Premier volume: 0 Premier volume: 24 Deuxième volume: 28. 896 Hauteur: 2. 1 Largeur: 3. 2 Longueur: 4. 3

Vous pouvez utiliser des structures pour un autre but intéressant. La norme C ++ indique que vous ne pouvez pas créer un modèle typedef. Par exemple, le code suivant génère une erreur lorsque vous essayez de le compiler:

modèle typedef map MyDef;

Lorsque vous essayez de compiler ce code dans Code:: Blocks, vous voyez l'erreur suivante:

error: déclaration de modèle de 'typedef'

Cependant, vous pouvez définir un typedef dans un modèle de structure. Le code exemple StructureTemplate2 ici montre comment.

#include #include utilisant l'espace de noms std; modèle struct MyDef {typedef map Type;}; int main () {MyDef:: Mariages de type; mariages ["Tom"] = "Suzy"; mariages ["Harry"] = "Harriet"; Cout << Mariages ["Tom"] << endl; Cout << Mariages ["Harry"] << endl; return 0;}

Cet exemple surmonte les limitations C ++ en plaçant le typedef dans la structure, MyDef. La même structure peut contenir n'importe quel nombre d'entrées typedef.

Utiliser un typedef de cette manière facilite le travail avec map.Tout ce dont vous avez besoin est le type de valeur - le type de clé est déjà défini en tant que chaîne.

Comment construire un modèle de structure en C ++ - les mannequins

Le choix des éditeurs

Comment éviter les erreurs en programmation C ++ - mannequins

Comment éviter les erreurs en programmation C ++ - mannequins

Le moyen le plus simple et le plus efficace de corriger les erreurs en C ++ est d'éviter de les introduire dans vos programmes en premier lieu. Une partie de cela est juste une question d'expérience, mais l'adoption d'un style de programmation clair et cohérent aide. Coder avec style Les humains ont une quantité limitée de puissance CPU entre leurs oreilles. You ...

Comment construire un modèle de structure en C ++ - les mannequins

Comment construire un modèle de structure en C ++ - les mannequins

Ont de nombreux usages intéressants, comme créer un référentiel de données qui ne dépend pas d'un type particulier. L'exemple StructureTemplate montre ici une telle utilisation. #include en utilisant l'espace de noms std; template struct Volume {T hauteur; T largeur; T longueur; Volume () {height = 0; largeur = 0; length = 0;} ...

Comment copier des fichiers en C ++ - des nuls

Comment copier des fichiers en C ++ - des nuls

Ah, en copiant un fichier - quelque chose de si simple, temps. Copiez ce fichier là-bas; Copiez ce fichier ici. Mais que se passe-t-il exactement lorsque vous copiez un fichier? Vous créez réellement un nouveau fichier et le remplissez avec le même contenu que le fichier original. Et comment faites-vous cela? Eh bien, ...

Le choix des éditeurs

La zone d'atterrissage basée sur Hadoop - les nuls

La zone d'atterrissage basée sur Hadoop - les nuls

Lorsque vous essayez de comprendre à quoi pourrait ressembler un environnement analytique l'avenir, vous trébuchez à travers le modèle de la zone d'atterrissage Hadoop à maintes reprises. En fait, ce n'est même plus une discussion prospective car la zone d'atterrissage est devenue la façon dont les entreprises tournées vers l'avenir tentent de sauver l'informatique ...

L'analyse statistique des limites d'échantillonnage dans Hadoop - mannequins

L'analyse statistique des limites d'échantillonnage dans Hadoop - mannequins

Est loin d'être une nouveauté, Il est certainement vieux que cela dépend du traitement de grandes quantités de données pour obtenir de nouvelles informations. Cependant, la quantité de données traditionnellement traitées par ces systèmes se situait entre 10 et 100 (ou centaines de) gigaoctets - ...

Le HBase MasterServer - les nuls

Le HBase MasterServer - les nuls

Démarrant une discussion de l'architecture HBase (Hadoop Database) en décrivant RegionServers au lieu du MasterServer peuvent vous surprendre . Le terme RegionServer semblerait impliquer que cela dépend (et est secondaire) du MasterServer et que vous devriez donc d'abord discuter du MasterServer. Comme le dit la vieille chanson, "ce n'est pas nécessairement le cas. "Le ...

Le choix des éditeurs

Débogage EtherChannel - mannequins

Débogage EtherChannel - mannequins

Les options de base de la commande de débogage pour EtherChannel sont listées ici. Comme toujours avec la commande debug dans un réseau Cisco, vous pouvez utiliser des options spécifiques si vous avez une idée de l'emplacement des problèmes ou si vous pouvez activer toutes les options de débogage pour le composant - si cela ne génère pas trop ...

Connexion de vos périphériques de réseau étendu (WAN) - mannequins

Connexion de vos périphériques de réseau étendu (WAN) - mannequins

Pour tout type de connexion WAN choisissez d'utiliser, vous devez établir une connexion entre le fournisseur de services et votre routeur. La façon dont vous le faites varie en fonction du type de connexion. En général, vous utiliserez des ports série ou des ports RNIS ou implémenterez une unité de service de canal / unité de service de données (CSU / DSU). Série ...

Distance-Notions de base sur les routages vectoriels - mannequins

Distance-Notions de base sur les routages vectoriels - mannequins

Fonctions de routage vectoriel en passant des tables de routage entre périphériques sur le réseau. Ainsi, le premier routeur regarde ses interfaces connectées, construit une table de routage et transmet cette information à d'autres routeurs sur ses interfaces connectées. Si le routeur reçoit des tables de routage d'autres routeurs, il met à jour toutes les métriques utilisées pour choisir les routes, telles que ...