Come creare un vettore di strutture in C ++

Come creare un vettore di strutture in C ++
Un vettore di strutture è una buona struttura di dati per una tabella del database. La tabella seguente è una tabella del database dei prodotti:
Codice prodotto Nome del prodotto Categoria Numero
1 Televisore Divertimento 10
2 VCD Divertimento 20
3 Scatola di abbigliamento Domestico 30
4 Profumo Bellezza 40
5 Banana Frutta 50
6 Pera Frutta 60

Ci sono sei righe di dati nella tabella. La riga di intestazione (ProductID, ProductName, Categoria, ecc.) non è una riga di dati. A rigor di termini, la riga di intestazione non è inclusa (non fatta parte) del vettore delle strutture in C++. Questa tabella dovrebbe essere considerata come un elenco di righe dello stesso tipo di riga, a partire dalla riga 1. A rigor di termini, la riga dell'intestazione non può essere dello stesso tipo del resto delle righe nella tabella.

La stringa in ogni cella, della riga dell'intestazione, descrive il resto dei suoi dati di colonna. Questo articolo spiega come creare un vettore C ++ di strutture e la sua applicazione alla creazione di una tabella di database.

Contenuto dell'articolo

- strumento

- Costruzione di vettori di strutture

- Alimentazione dei dati nel vettore delle strutture

- Problema della riga di testa

- Conclusione

Strumento

Una struttura è simile a una classe. Gli oggetti sono istanziati da una struttura. La definizione di strumento inizia con la parola riservata, struct, seguita dal nome generalizzato (nome di classe) della struttura, quindi una coppia di parentesi graffe, all'interno della quale sono membri della struttura. La definizione termina con un punto e virgola dopo la staffa ricci di chiusura. Il seguente codice è una struttura per ogni riga della tabella sopra; La riga dell'intestazione non è considerata qui:

struct row
Insigned Int ProductID;
String ProductName;
categoria stringa;
Numero int non firmato;
Float costPrice;
Float Selling Price;
;

Si noti che i membri del prodotto e dei membri della categoria sono stringhe. Ciò significa che la libreria di stringhe deve essere inclusa nel programma. Il nome generalizzato per la struttura è, riga. Oggetti come Row1, Row2, Row3, ecc. può essere istanziato dalla riga. Tuttavia, nomi specifici per gli oggetti di riga non sono necessari ai fini di questo articolo perché "riga" sarà l'argomento del parametro del modello per il vettore.

Costruzione di vettori di strutture

La dichiarazione di un vettore di personaggi può essere:

vettore VTR;

Where Char è l'argomento del parametro del modello per il vettore, il cui nome è, VTR. Allo stesso modo, la dichiarazione per il vettore delle righe struct sarebbe:

vettore VTR (7);

dove "riga" è l'argomento del parametro del modello per il vettore, il cui nome può ancora essere, VTR. Ci sono sei righe e una riga di intestazione nella tabella sopra. Questo fa il numero di righe, 7. La riga 0 è la riga di intestazione, che potrebbe non avere nessuno dei suoi dati. Il numero iniziale di righe può essere indicato nella dichiarazione vettoriale.

Al fine di codificare un vettore in un programma C ++, la libreria vettoriale deve essere inclusa nel programma. La testa per il programma di questo articolo dovrebbe essere:

#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;

Nel programma, questo è seguito dalla definizione della riga struct e quindi dalla dichiarazione del vettore delle righe struct prima della funzione principale C ++.

Alimentazione dei dati al vettore delle strutture

Al fine di accedere a un elemento nella struttura vettoriale bidimensionale di struttura inizia con il nome vettoriale, E.G., VTR. Il è seguito dal numero di pedice tra parentesi quadrate, che è seguito da un punto, quindi il nome della colonna, E.G., Codice prodotto. Il seguente codice nella funzione principale C ++ alimenterebbe i dati nelle righe dalla riga 1 alla riga 6:

VTR [1].ProductID = 1; VTR [1].ProductName = "TV Set"; VTR [1].Categoria = "intrattenimento"; VTR [1].Numero = 10;
VTR [2].ProductID = 2; VTR [2].ProductName = "VCD"; VTR [2].Categoria = "intrattenimento"; VTR [2].Numero = 20;
VTR [3].ProductID = 3; VTR [3].ProductName = "Clowe Box"; VTR [3].Categoria = "famiglia"; VTR [3].Numero = 30;
VTR [4].ProductID = 4; VTR [4].ProductName = "profumo"; VTR [4].Categoria = "bellezza"; VTR [4].Numero = 40;
VTR [5].ProductID = 5; VTR [5].ProductName = "Banana"; VTR [5].Categoria = "frutta"; VTR [5].Numero = 50;
VTR [6].ProductID = 6; VTR [6].ProductName = "Pear"; VTR [6].Categoria = "frutta"; VTR [6].Numero = 60;

Dopo questo segmento di codice, il seguente segmento di codice nella funzione principale C ++ visualizzerebbe tutti i valori della cella della struttura bidimensionale:

cout << vtr[1].ProductID <<", "; cout << vtr[1].ProductName <<", "; cout << vtr[1].Category <<", "; cout << vtr[1].Number <cout << vtr[2].ProductID <<", "; cout << vtr[2].ProductName <<", "; cout << vtr[2].Category <<", "; cout << vtr[2].Number <cout << vtr[3].ProductID <<", "; cout << vtr[3].ProductName <<", "; cout << vtr[3].Category <<", "; cout << vtr[3].Number <cout << vtr[4].ProductID <<", "; cout << vtr[4].ProductName <<", "; cout << vtr[4].Category <<", "; cout << vtr[4].Number <cout << vtr[5].ProductID <<", "; cout << vtr[5].ProductName <<", "; cout << vtr[5].Category <<", "; cout << vtr[5].Number <cout << vtr[6].ProductID <<", "; cout << vtr[6].ProductName <<", "; cout << vtr[6].Category <<", "; cout << vtr[6].Number <L'output è:

1, televisore, intrattenimento, 10

2, VCD, Entertainment, 20

3, scatola di abbigliamento, famiglia, 30

4, profumo, bellezza, 40

5, banana, frutta, 50

6, pera, frutta, 60

Un per loop può essere utilizzato per stampare tutti i valori delle celle. Il per loop sarebbe iterato sulle righe, a partire dall'indice 1. Il per loop non iterizzerebbe alcuna riga, perché diverse colonne hanno nomi diversi e ogni colonna può essere identificata con il suo nome.

Problema della riga di testa

La riga dell'intestazione è su indice zero. La riga di intestazione è costituita da tutte le stringhe, ma il resto delle righe non ha solo colonne stringhe. Bene, la riga dell'intestazione come una stringa è:

"ProductID, ProductName, categoria, numero"

La seconda colonna della struttura bidimensionale prende una stringa. Quindi, tutta questa stringa di intestazione può essere inserita nella seconda cella della riga 0. Il resto delle celle nella riga 0 avrà i loro valori predefiniti. Ad esempio, il valore predefinito di una variabile int è 0.

Il codice può essere scritto per separare questa stringa di intestazione nella sua colonna Intestazione per la visualizzazione dell'intera tabella, inclusa la riga di intestazione ma che non è indirizzata in questo articolo.

Fare la seconda cella della riga 0 ha l'intera stringa di intestazione è semplice come segue:

VTR [0].ProductName = "ProductID, ProductName, categoria, numero";

Nota l'indice di 0 per la riga 0. Leggere tutto come una stringa è anche semplice come segue:

String Str = VTR [0].Nome del prodotto;
cout << str << endl;

L'output dovrebbe essere:

ProductID, ProductName, categoria, numero

Separare l'intera stringa in stringhe di intestazione della colonna può essere un problema, cioè la discussione per qualche altra volta.

Conclusione

Per creare un vettore di strutture, definire la struttura, con un nome generalizzato (classe). Fare l'argomento modello del vettore di interesse, il nome generalizzato della struttura. Accedi a ciascuna cella della struttura bidimensionale con la sintassi, VTR [i].colonnello.