Latest web development tutorials

Struktury danych C ++

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:

  • tytuł
  • autor
  • przedmiot
  • Book ID

struktura definicja

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;
   ...
   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;  

Dostęp do członka struktury

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

Struktura jako parametr funkcji

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

Wskaźnik do struktury

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

typedef kluczowe

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.