Najlepszy samouczek Struktury danych C ++ W 2024 r. W tym samouczku możesz dowiedzieć się struktura definicja,Dostęp do członka struktury,Struktura jako parametr funkcji,Wskaźnik do struktury,typedef kluczowe,
C / C ++ pozwala zdefiniować zmienną tablicową do przechowywania tego samego rodzaju elementów danych, alestruktura jest C ++, kolejne typy danych zdefiniowane przez użytkownika dostępne, co pozwala na przechowywanie różnego rodzaju elementów danych.
Struktura używany do reprezentowania zapis, że chcesz śledzić dynamiczne biblioteki książek, może być konieczne, aby śledzić każdej książce o następujących właściwościach:
W celu określenia struktury, należy użyć instrukcjistruct.Oświadczenie struct definiuje nowy typ danych, który zawiera wiele elementów, zestawienie Format struktura przedstawia się następująco:
struct [structure tag] { member definition; member definition; pl. member definition; } [one or more structure variables];
tag struktura jest opcjonalne, każda definicja członkiem jest standardową definicję zmiennych, takich jak int i; lub float f; lub inne ważne definicje zmiennych.Pod koniec strukturze zdefiniowanej, ostatni przed średnikiem, można określić jedną lub więcej zmiennych strukturalnych, które jest opcjonalne. Oto struktura deklaracji Rezerwacja do:
struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }book;
W celu uzyskania dostępu do elementów konstrukcji, używamyoperatora dostępu członkiem (.).Operator dostępu użytkownika jest strukturą Okres nazwy zmiennych i struktury naszych członków mieć dostęp pomiędzy. Możesz określić typ zmiennej strukturze, używającsłowa kluczowego struct.Poniższy przykład pokazuje zastosowanie struktury:
#include <iostream> #include <cstring> using namespace std; struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; int main( ) { struct Books Book1; // 声明 Book1,类型为 Book struct Books Book2; // 声明 Book2,类型为 Book // Book1 详述 strcpy( Book1.title, "Learn C++ Programming"); strcpy( Book1.author, "Chand Miyan"); strcpy( Book1.subject, "C++ Programming"); Book1.book_id = 6495407; // Book2 详述 strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Yakit Singha"); strcpy( Book2.subject, "Telecom"); Book2.book_id = 6495700; // 输出 Book1 信息 cout << "Book 1 title : " << Book1.title <<endl; cout << "Book 1 author : " << Book1.author <<endl; cout << "Book 1 subject : " << Book1.subject <<endl; cout << "Book 1 id : " << Book1.book_id <<endl; // 输出 Book2 信息 cout << "Book 2 title : " << Book2.title <<endl; cout << "Book 2 author : " << Book2.author <<endl; cout << "Book 2 subject : " << Book2.subject <<endl; cout << "Book 2 id : " << Book2.book_id <<endl; return 0; }
Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:
Book 1 title : Learn C++ Programming Book 1 author : Chand Miyan Book 1 subject : C++ Programming Book 1 id : 6495407 Book 2 title : Telecom Billing Book 2 author : Yakit Singha Book 2 subject : Telecom Book 2 id : 6495700
Można umieścić strukturę jako parametr funkcji, sposób Senatu podobny do innych typów zmiennych lub wskaźników. Można użyć Powyższy przykład drogę do dostępu do zmiennych strukturę:
#include <iostream> #include <cstring> using namespace std; void printBook( struct Books book ); struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; int main( ) { struct Books Book1; // 声明 Book1,类型为 Book struct Books Book2; // 声明 Book2,类型为 Book // Book1 详述 strcpy( Book1.title, "Learn C++ Programming"); strcpy( Book1.author, "Chand Miyan"); strcpy( Book1.subject, "C++ Programming"); Book1.book_id = 6495407; // Book2 详述 strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Yakit Singha"); strcpy( Book2.subject, "Telecom"); Book2.book_id = 6495700; // 输出 Book1 信息 printBook( Book1 ); // 输出 Book2 信息 printBook( Book2 ); return 0; } void printBook( struct Books book ) { cout << "Book title : " << book.title <<endl; cout << "Book author : " << book.author <<endl; cout << "Book subject : " << book.subject <<endl; cout << "Book id : " << book.book_id <<endl; }
Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:
Book title : Learn C++ Programming Book author : Chand Miyan Book subject : C++ Programming Book id : 6495407 Book title : Telecom Billing Book author : Yakit Singha Book subject : Telecom Book id : 6495700
Można zdefiniować wskaźnik do struktury, sposób definicji linki do innych podobnych typów zmiennej wskaźnika, co następuje:
struct Books *struct_pointer;
Teraz możesz zająć zmienne struktury przechowywania w powyższej definicji zmiennej wskaźnika. Aby znaleźć adres zmiennej struktury, i operatora przed nazwą struktury, co następuje:
struct_pointer = &Book1;
Aby użyć wskaźnika do uzyskania dostępu do punktów członkiem struktury do struktury, należy użyć -> operator, co następuje:
struct_pointer->title;
Użyjmy wskaźnik struktury przepisać powyższy przykład, to pomoże Ci zrozumieć pojęcie wskaźników struktury:
#include <iostream> #include <cstring> using namespace std; void printBook( struct Books *book ); struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; int main( ) { struct Books Book1; // 声明 Book1,类型为 Book struct Books Book2; // 声明 Book2,类型为 Book */ // Book1 详述 strcpy( Book1.title, "Learn C++ Programming"); strcpy( Book1.author, "Chand Miyan"); strcpy( Book1.subject, "C++ Programming"); Book1.book_id = 6495407; // Book2 详述 strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Yakit Singha"); strcpy( Book2.subject, "Telecom"); Book2.book_id = 6495700; // 通过传 Book1 的地址来输出 Book1 信息 printBook( &Book1 ); // 通过传 Book2 的地址来输出 Book2 信息 printBook( &Book2 ); return 0; } // 该函数以结构指针作为参数 void printBook( struct Books *book ) { cout << "Book title : " << book->title <<endl; cout << "Book author : " << book->author <<endl; cout << "Book subject : " << book->subject <<endl; cout << "Book id : " << book->book_id <<endl; }
Gdy powyższy kod jest kompilowany i wykonany, że daje następujące wyniki:
Book title : Learn C++ Programming Book author : Chand Miyan Book subject : C++ Programming Book id : 6495407 Book title : Telecom Billing Book author : Yakit Singha Book subject : Telecom Book id : 6495700
Tutaj jest prostszym sposobem definiowania struktury, można utworzyć rodzaj, aby zrobić "Alias". Na przykład:
typedef struct { char title[50]; char author[50]; char subject[100]; int book_id; }Books;
Teraz można użyć do definiowania zmiennychKsiążkiKsiążki rodzajów, bez konieczności użycia słowa kluczowego struct. Oto przykłady:
Books Book1, Book2;
Można użyć słowa kluczowegotypedef do zdefiniowania typu non-strukturalnej, co następuje:
typedef long int *pint32; pint32 x, y, z;
X, Y i Z są skierowane do długości całkowitej długości int wskaźnika.