Productide | ProductName | Catégorie | Nombre |
1 | Poste de télévision | Divertissement | dix |
2 | VCD | Divertissement | 20 |
3 | Boîte de robe | Ménage | 30 |
4 | Parfum | Beauté | 40 |
5 | Banane | Fruit | 50 |
6 | Poire | Fruit | 60 |
Il y a six lignes de données dans le tableau. La ligne d'en-tête (productId, productName, catégorie, etc.) n'est pas une ligne de données. À strictement parlant, la ligne d'en-tête n'est pas incluse (non fait partie) du vecteur des structures en c++. Ce tableau doit être considéré comme une liste de lignes du même type de ligne, à partir de la ligne 1. À strictement parler, la ligne d'en-tête ne peut pas être du même type que le reste des lignes de la table.
La chaîne de chaque cellule, de la ligne d'en-tête, décrit le reste de ses données de colonne. Cet article explique comment créer un vecteur C ++ de structures et son application à la création d'une table de base de données.
Contenu de l'article
- structure
- Construction du vecteur de structures
- Alimenter les données dans le vecteur des structures
- Problème de la ligne d'en-tête
- Conclusion
Structure
Une structure est similaire à une classe. Les objets sont instanciés à partir d'une structure. La définition d'une structure commence par le mot réservé, struct, suivi du nom généralisé (nom de classe) de la structure, puis une paire de contreventement, à l'intérieur desquelles sont des membres de structure. La définition se termine par un point-virgule après le support bouclé de clôture. Le code suivant est une structure pour chaque ligne de la table ci-dessus; La ligne d'en-tête n'est pas considérée ici:
Struct RowNotez que les membres du nom de produit et de la catégorie sont des chaînes. Cela signifie que la bibliothèque de chaînes doit être incluse dans le programme. Le nom généralisé pour la structure est, Row. Des objets tels que Row1, Row2, Row3, etc. peut être instancié de la ligne. Cependant, des noms spécifiques pour les objets de ligne ne sont pas nécessaires aux fins de cet article car la «ligne» sera l'argument du paramètre de modèle pour le vecteur.
Construction du vecteur de structures
La déclaration d'un vecteur de caractères peut être:
vecteuroù char est l'argument du paramètre de modèle pour le vecteur, dont le nom est, vtr. De même, la déclaration pour le vecteur des lignes de structure serait:
vecteuroù «Row» est l'argument du paramètre de modèle pour le vecteur, dont le nom peut toujours être, vtr. Il y a six rangées et une ligne d'en-tête dans la table ci-dessus. Cela fait le nombre de lignes, 7. La ligne 0 est la ligne d'en-tête, qui peut ne pas avoir de ses propres données. Le nombre initial de lignes peut être indiqué dans la déclaration de vecteur de structures.
Afin de coder un vecteur dans un programme C ++, la bibliothèque vectorielle doit être incluse dans le programme. La tête du programme de cet article devrait être:
#inclureDans le programme, cela est suivi de la définition de la ligne struct, puis de la déclaration du vecteur des lignes de structure avant la fonction principale C ++.
Nourrir les données au vecteur des structures
Afin d'accéder à un élément de la structure vectorielle de structures bidimensionnelle, commencez par le nom du vecteur, e.g., vtr. Le est suivi par le numéro d'indice dans les crochets, qui est suivi d'un point, puis du nom de la colonne, e.g., Productide. Le code suivant dans la fonction principale C ++ alimenterait les données en lignes de la ligne 1 à la ligne 6:
VTR [1].ProductId = 1; VTR [1].ProductName = "TV Set"; VTR [1].Catégorie = "divertissement"; VTR [1].Nombre = 10;Après ce segment de code, le segment de code suivant dans la fonction principale C ++ afficherait toutes les valeurs cellulaires de la structure bidimensionnelle:
couter << vtr[1].ProductID <<", "; cout << vtr[1].ProductName <<", "; cout << vtr[1].Category <<", "; cout << vtr[1].Number <1, téléviseur, divertissement, 10
2, VCD, divertissement, 20
3, boîte de robe, ménage, 30
4, parfum, beauté, 40
5, banane, fruits, 50
6, poire, fruit, 60
Une boucle pour imprimer toutes les valeurs des cellules. La boucle pour itératerait sur les lignes, à partir de l'indice 1. La boucle pour ne ferait aucune ligne, car différentes colonnes ont des noms différents, et chaque colonne peut être identifiée par son nom.
Problème de la ligne d'en-tête
La ligne d'en-tête est à l'index zéro. La ligne d'en-tête se compose de toutes les chaînes, mais le reste des lignes, ne dispose pas de colonnes de chaîne. Eh bien, la ligne d'en-tête comme une chaîne est:
"ProductId, ProductName, catégorie, numéro"La deuxième colonne de la structure bidimensionnelle prend une chaîne. Ainsi, toute cette chaîne d'en-tête peut être placée dans la deuxième cellule de la ligne 0. Le reste des cellules de la ligne 0 aura leurs valeurs par défaut. Par exemple, la valeur par défaut d'une variable int est 0.
Le code peut être écrit pour séparer cette chaîne d'en-tête dans ses chaînes d'en-tête de colonne pour l'affichage de l'ensemble du tableau, y compris la ligne d'en-tête, mais cela n'est pas abordé dans cet article.
Faire la deuxième cellule de la ligne 0 a toute la chaîne d'en-tête est simple comme suit:
vtr [0].ProductName = "ProductId, ProductName, catégorie, numéro";Remarque l'index de 0 pour la ligne 0. La lecture de tout comme une chaîne est également simple comme suit:
String str = vtr [0].ProductName;La sortie doit être:
ProductId, ProductName, catégorie, numéroLa séparation de la chaîne entière en chaînes d'en-tête de colonne peut être un problème - c'est une discussion pour une autre fois.
Conclusion
Pour créer un vecteur de structures, définissez la structure, avec un nom généralisé (classe). Faire l'argument du modèle du vecteur d'intérêt, le nom généralisé de la structure. Accédez à chaque cellule de la structure bidimensionnelle avec la syntaxe, Vtr [i].nom de colonne.