Jak utworzyć wektor struktur w C ++

Jak utworzyć wektor struktur w C ++
Wektor struktur jest dobrą strukturą danych dla tabeli bazy danych. Poniższa tabela to tabela bazy danych produktów:
ID produktu Nazwa produktu Kategoria Numer
1 Telewizor Rozrywka 10
2 VCD Rozrywka 20
3 Ubieranie pudełka Gospodarstwo domowe 30
4 Perfumy Uroda 40
5 Banan Owoc 50
6 Gruszka Owoc 60

W tabeli znajduje się sześć wierszy danych. Wiersz nagłówka (produktd, nazwa produktu, kategoria itp.) nie jest wierszem danych. Ściśle mówiąc, wiersz nagłówka nie jest włączony do (nie jest częścią) wektor struktur w c++. Ta tabela należy uznać za listę wierszy tego samego wiersza, zaczynając od rzędu 1. Ściśle mówiąc, wiersz nagłówka nie może być tego samego typu co reszta wierszy w tabeli.

Ciąg w każdej komórce, wiersza nagłówka, opisuje resztę danych z kolumny. W tym artykule wyjaśniono, jak utworzyć wektor C ++ struktury i jego aplikację do tworzenia tabeli bazy danych.

Treść artykułu

- struct

- Budowa wektora struktur

- Karmienie danych do wektora struktur

- Problem wiersza nagłówka

- Wniosek

Struct

Struktura jest podobna do klasy. Obiekty są tworzone z struktury. Definicja struktury zaczyna się od zarezerwowanego słowa, struktura, a następnie uogólnionej nazwy (nazwy klasy) struktury, a następnie parę aparatów ortodontycznych, w których są elementami struktur. Definicja kończy się półkolisem po zamykaniu kręconego wspornika. Poniższy kod jest strukturem dla każdego wiersza powyższej tabeli; Rząd nagłówka nie jest tutaj rozważany:

struct wiersz
niepodpisany int produktdId;
String ProductName;
kategoria strunowa;
niepodpisany numer int;
Kostki pływakowe;
Float Sprzedaż;
;

Zauważ, że nazwa produktu i członków kategorii to ciągi. Oznacza to, że biblioteka ciągów musi zostać włączona do programu. Uogólniona nazwa struktury to, wiersz. Obiekty takie jak Row1, Row2, Row3 itp. Można utworzyć instancję z rzędu. Jednak konkretne nazwy obiektów wiersza nie są konieczne do celów tego artykułu, ponieważ „wiersz” będzie argumentem parametru szablonu dla wektora.

Budowa wektora struktur

Deklaracja wektora znaków może być:

wektor vtr;

gdzie char jest argumentem parametru szablonu dla wektora, którego nazwa to: VTR. Podobnie deklaracja wektora wierszy struktury wyniosłaby:

wektor VTR (7);

gdzie „wiersz” jest argumentem parametru szablonu dla wektora, którego nazwa może być nadal VTR. W powyższej tabeli znajduje się sześć wierszy i jeden wiersz nagłówka. To sprawia, że ​​liczba wierszy, 7. Rząd 0 to wiersz nagłówka, który może nie mieć żadnych własnych danych. Początkowa liczba wierszy można wskazać w deklaracji wektorowej struktury.

Aby kodować wektor w programie C ++, biblioteka wektorowa musi zostać włączona do programu. Kierownikiem programu tego artykułu powinien być:

#włączać
#włączać
#włączać
za pomocą przestrzeni nazw Std;

W programie następuje definicja wiersza struktury, a następnie deklaracja wektora wierszy struktur.

Dane przekazujące wektor struktur

Aby uzyskać dostęp do elementu w dwuwymiarowej strukturze wektorowej struktury, zaczyna się od nazwy wektora, e.G., vtr. Następnie numer indeksowy w nawiasach kwadratowych, po którym następuje kropka, a następnie nazwa kolumny, e.G., ID produktu. Poniższy kod w głównej funkcji C ++ zasilałby dane do wierszy od wiersza 1 do wiersza 6:

vtr [1].ProduktID = 1; vtr [1].ProductName = "TV SET"; vtr [1].Kategoria = „rozrywka”; vtr [1].Liczba = 10;
VTR [2].ProduktID = 2; VTR [2].ProductName = "vcd"; VTR [2].Kategoria = „rozrywka”; VTR [2].Liczba = 20;
VTR [3].ProduktID = 3; VTR [3].ProductName = "COUTHE Box"; VTR [3].Kategoria = „gospodarstwo domowe”; VTR [3].Liczba = 30;
VTR [4].ProduktID = 4; VTR [4].ProductName = „Perfume”; VTR [4].Kategoria = „piękno”; VTR [4].Liczba = 40;
VTR [5].ProduktID = 5; VTR [5].ProductName = „Banana”; VTR [5].Kategoria = „owoc”; VTR [5].Liczba = 50;
VTR [6].ProduktID = 6; VTR [6].ProductName = "pear"; VTR [6].Kategoria = „owoc”; VTR [6].Liczba = 60;

Po tym segmencie kodu następujący segment kodu w głównej funkcji C ++ wyświetlałby wszystkie wartości komórki dwuwymiarowej struktury:

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 <Wyjście to:

1, zestaw telewizyjny, rozrywka, 10

2, VCD, rozrywka, 20

3, pudełko ubrania, gospodarstwo domowe, 30

4, perfumy, piękno, 40

5, banan, owoce, 50

6, gruszka, owoce, 60

Do wydrukowania wszystkich wartości komórek można użyć do pętli. For pętka itera by iterację nad rzędami, poczynając od indeksu 1. For pętka nie iterowałaby żadnego wiersza, ponieważ różne kolumny mają różne nazwy, a każda kolumna może być zidentyfikowana według jego nazwy.

Problem wiersza nagłówka

Rząd nagłówka jest na indeksie zero. Row nagłówkowy składa się ze wszystkich ciągów, ale reszta wierszy, nie mają tylko kolumn łańcuchowych. Cóż, wiersz nagłówka jako jeden ciąg to:

„ProductID, nazwa produktu, kategoria, liczba”

Druga kolumna dwuwymiarowej struktury bierze ciąg. Tak więc cały ten ciąg nagłówka można umieścić w drugiej komórce rzędu 0. Reszta komórek w rzędzie 0 będzie miała swoje wartości domyślne. Na przykład domyślna wartość zmiennej INTIND to 0.

Kod można zapisać, aby oddzielić ten ciąg nagłówkowy na jego sznurki na nagłówek kolumny, aby wyświetlić całą tabelę, w tym wiersz nagłówka, ale nie jest to rozwiązane w tym artykule.

Wykonanie drugiej komórki wiersza 0 ma cały ciąg nagłówka, jest prosty w następujący sposób:

vtr [0].ProductName = "ProductId, ProductName, kategoria, liczba";

Zwróć uwagę na indeks 0 dla wiersza 0. Czytanie tego wszystkiego jako jeden ciąg jest również prosty w następujący sposób:

String str = vtr [0].Nazwa produktu;
Cout << str << endl;

Wyjście powinno być:

ProductID, nazwa produktu, kategoria, liczba

Problemem może być oddzielenie całego ciągu na ciągły nagłówka kolumn - to jest dyskusja od innego czasu.

Wniosek

Aby utworzyć wektor struktur, zdefiniuj strukturę, z uogólnioną (klasą) nazwą. Zrób argument szablonu wektora zainteresowania, uogólniona nazwa struktury. Uzyskaj dostęp do każdej komórki dwuwymiarowej struktury z składnią, VTR [i].Nazwa kolumny.