데이터 구조 (Data structures) (1): 데이터 구조

5721 단어 struct

하나의 데이터 구조 (data structure) 는 하나의 데이터 요소 가 한데 모여 하나의 이름 아래 에 놓 여 있 는 것 이다.이 데이터 요 소 는 구성원 (members) 이 라 고 불 리 며 유형 (type) 과 길이 (length) 가 다 를 수 있 습 니 다.데이터 구 조 를 정의 하 는 문법 은 다음 과 같 습 니 다.
 
    struct type_name{
     member_type1 member_name1;
     member_type2 member_name2;
     member_type3 member_name3;
    ...
    ...
    } object_names;
 
type_name 은 이 구조 형식의 이름 입 니 다. objectnames 는 일부 대상 의 유효한 식별 자 일 수 있 습 니 다. 이 대상 들 은 위 에서 정의 한 구조 유형 을 가지 고 있 습 니 다.기호 {} 에 일련의 데이터 구성원 이 있 습 니 다. 각각 하나의 유형 과 효과 적 인 식별 자 를 이름 으로 지정 합 니 다.
예 를 들 면:
    struct product {
    int weight;
    double price;
    };//이 분점 에 주의 하 세 요.
    product apple;
    product banana, melon;
 
구조 유형: produt.또한 두 멤버 를 정의 했다. weight 와 price 는 각각 다른 기본 유형 을 가지 고 있다.
이 성명 은 새로운 유형 (product) 을 만 든 다음 에 이 유형의 세 개의 대상 objects (variables): apple, banana, melon 을 정의 합 니 다.
형식 produt 이 정의 되면 int, float, double 과 같은 다른 데이터 형식 을 사용 할 수 있 습 니 다.
구조 정의 끝 에 옵션 object 가 있 습 니 다.names, 그 역할 은 이 구조 유형 을 직접 정의 할 수 있 는 대상 입 니 다.예 를 들 어 우 리 는 데이터 구조 유형 을 정의 하 는 동시에 구조 대상 애플, 바나나, 멜론 을 설명 할 수 있다.
 
    struct product {
    int weight;
    double price;
    }apple, banana, melon;
 
여기 있 습 니 다. objectnames 는 지정 되 어야 합 니 다. 형식 이름 (product) 은 옵션 이 되 었 습 니 다. struct 는 type 이 필요 합 니 다.name 또는 최소한 하나의 objectnames 의 이름 이지 만 꼭 필요 한 것 은 아 닙 니 다.
구조 유형 명 (product) 과 이 구조 유형의 대상 (apple, banana, melon) 을 명확 하 게 구분 하 는 것 이 중요 하 다.하나의 구조 유형 에서 여러 대상 (예 를 들 어 애플, 바나나, 멜론) 을 설명 할 수 있 습 니 다.
이 세 개의 확 정 된 구조 유형 대상 이 성명 되면 (apple, banana, melon) 구성원 (members) 이 직접 방문 할 수 있 습 니 다.이 문법 은 object name 과 member name 사이 에 쉼표 를 추가 합 니 다. "예 를 들 어 일반적인 표준 변 수 를 사용 하 는 것 처럼 이 요 소 를 조작 할 수 있 습 니 다.
 
    apple.weight;
    apple.price;
    banana.weight;
    banana.price;
    melon.weight;
    melon.price;
 
이들 은 각자 의 데이터 형식 과 대응 되 며, apple. weight, banana. weight, melon. weight 는 int 형식 이 고, apple. price 는 banana. price 와 melon. price 는 double 형식 입 니 다.
다음은 실제 예 를 들 어 보 겠 습 니 다.
 
#include <iostream>
#include <string>
#include <sstring>
using namespace std;
struct movies_t
{
string title;
int years
} mine, yours;
void printmovie(movies_t movie);
int main () { string mystr; mine.title = "2001 A Space Odyssey"; mine.year = 1968; cout << "Enter title: "; getline (cin,yours.title); cout << "Enter year: "; getline (cin,mystr); stringstream(mystr) >> yours.year; cout << "My favorite movie is:
"
; printmovie (mine); cout << "And yours is:
"
; printmovie (yours);

return 0; }
void printmovie (movies_t movie) { cout << movie.title; cout << " (" << movie.year << ")
"
; }
Enter title: Alien Enter year: 1979 My favorite movie is: 2001 A Space Odyssey (1968) And yours is: Alien (1979)
 

 
이 예 에서 일반 변 수 를 사용 하 는 것 처럼 대상 의 구성원 (members) 을 사용 하 는 방법 을 볼 수 있 습 니 다. 예 를 들 어 yours. year 는 전체 데이터 int 이 고 mine. title 은 string 형식의 유효 변수 입 니 다.
여기 mine 와 yours 도 변수 입 니 다. 그들 은 movies t 형식의 변수 로 함수 printmovie () 에 전 달 됩 니 다. 따라서 데이터 구조의 중요 한 장점 중 하 나 는 우리 가 그 요 소 를 단독으로 인용 할 수도 있 고 전체 구조 데이터 블록 을 인용 할 수도 있다 는 것 입 니 다.
구 조 는 데이터 베 이 스 를 구축 하 는 데 자주 사용 된다. 특히 우리 가 구조 배열 을 고려 할 때:
 
#include <iostream>
#include <string>
#include <sstream>

using namespace std;
struct movies_t { string title; int year; } films [3];
void printmovie (movies_t movie);
int main () { string mystr; int n; for(n=0; n<3; n++) { cout << "Enter title: "; getline (cin,films[n].title); cout << "Enter year: "; getline (cin,mystr); stringstream(mystr) >> films[n].year; } cout << "
You have entered these movies:
"
; for(n=0; n<3; n++) printmovie (films[n]);
return 0; }
void printmovie (movies_t movie) { cout << movie.title; cout << " (" << movie.year << ")
"
; }
Enter title: Blade Runner Enter year: 1982 Enter title: The Matrix Enter year: 1999 Enter title: Taxi Driver Enter year: 1976 You have entered these movies: Blade Runner (1982) The Matrix (1999) Taxi Driver (1976)

좋은 웹페이지 즐겨찾기