최고의 C ++ 데이터 구조 튜토리얼 2024년, 이 튜토리얼에서는 정의 구조,구조 부재에 대한 액세스,함수 매개 변수로 구조,구조의 포인터,타입 정의 키워드,를 배울 수 있습니다.
C / C ++는 데이터 아이템들의 동일한 유형을 저장하도록 배열 변수를 정의 할 수 있지만,구조가 데이터 아이템의 종류를 저장할 수있는 C ++ 가능한 다른 사용자 정의 데이터 형식이다.
구조, 레코드를 나타내는 데 사용되는 동적 라이브러리 책을 추적 할 가정, 각 책에는 다음과 같은 속성을 추적해야 할 수 있습니다 :
구조를 정의하기 위해, 당신은구조체 문을 사용해야합니다.구조체 문장은 다음과 같이 복수의 부재를 포함하는 새로운 데이터 유형, 포맷 구조체 문이 정의
struct [structure tag] { member definition; member definition; ko. member definition; } [one or more structure variables];
구조 태그는 선택 사항이며,모든 구성원의 정의는 내가 int로서 변수의 표준 정의입니다 또는 F를 떠 또는 다른 유효한 변수 정의. 정의 구조의 끝에서, 세미콜론 전에 마지막 하나는 선택적이며 하나 또는 그 이상의 구조적 변수들을 지정할 수있다. 여기에 구조 선언 책으로는 다음과 같습니다
struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }book;
구조의 멤버를 액세스하기 위해, 우리는멤버 액세스 연산자 (.)를 사용.회원 액세스 연산자는 변수 이름과 회원의 구조 사이에 액세스 할 기간 구조입니다. 넌구조체 키워드를 사용하여 가변 구조의 타입을 정의 할 수있다.다음의 예는 구조의 사용을 보여
#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; }
상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를
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
사용자는 함수 매개 변수 또는 포인터를 다른 유형의 유사한 상원 방식으로 구조를 넣을 수있다. 당신은 구조 변수를 액세스하기 위해 상기 실시 예를 방법을 사용할 수있다 :
#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; }
상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를
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
다음과 같이, 방법을, 구조에 포인터 변수의 다른 유사한 유형의 링크의 정의를 포인터를 정의 할 수 있습니다 :
struct Books *struct_pointer;
이제 포인터 변수의 상기 정의에 저장 구조의 변수를 처리 할 수있다. 다음과 같이 구조 변수, 구조체의 이름 앞에 & 연산자의 주소를 확인하는 방법은 다음과 같습니다
struct_pointer = &Book1;
다음과 같이,> 연산자 - 구조에 멤버 구조 지점에 액세스 포인터를 사용하려면를 사용해야합니다
struct_pointer->title;
이제, 당신이 구조 포인터의 개념을 이해하는 데 도움이 될 것입니다 위의 예를 다시 작성하는 구조 포인터를 사용하자 :
#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; }
상기 코드는 컴파일되고 실행될 때, 다음과 같은 결과를
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 struct { char title[50]; char author[50]; char subject[100]; int book_id; }Books;
이제 구조체 키워드를 사용하지 않고도 변수도서도서 유형을 정의하는 데 사용할 수있다. 예를 들면 다음과 같습니다 :
Books Book1, Book2;
다음과 같이, 비 구조 유형을 정의하는형식 정의 키워드를 사용할 수 있습니다 :
typedef long int *pint32; pint32 x, y, z;
X, Y 및 Z는 긴 정수 long int와 포인터를 가리키는.