2015. 9. 20. 14:11ㆍ알고리즘 문제풀기/코딩
구조체란 여러 변수를 묶어 하나로 쓰는 것이다.
다음 그림을 보자.
구조체를 만들 때는
struct 구조체이름 {
변수형 내부이름;
변수형 내부이름;
...
변수형 내부이름;
};
이런 식으로 선언한다.
안쪽의 변수형 내부이름;은 평소에 변수를 선언할 때처럼 쓰면 된다.
내부이름이 어떤 의미인지는 곧 알 수 있다.
구조체는 '설계도'와 같은 존재이다.
설계도가 있어도 그 설계도로 집을 지어야 비로소 그 안에서 살 수 있듯이,
구조체를 가지고 변수를 만들어야 비로소 그 값에 접근할 수 있다.
이 때 만들어진 변수는 당연히 구조체에 설계한 그대로 구조가 만들어진다.
구조체 이름이 asdf라면, 그 구조체를 가지고 x라는 이름의 변수를 만드려면 asdf x; 라고 선언하면 된다. int a; 와 똑같이 생각하면 된다.
즉 구조체도 int나 char처럼 변수형의 개념이다. 심지어 구조체 내부에 구조체를 넣을 수도 있다.
var라는 구조체 변수의, x라는 내부이름을 갖는 변수에 접근할 때는 var.x처럼 . 을 사용한다.
처음에 구조체를 만들면 그 안의 변수들에는 흔히 말하는 '쓰레기 값'이 담겨있다. 그래서 쓰기 전에 꼭 초기화를 해주어야 한다.
물론 구조체로 배열도 만들 수 있다.
a var[11]; for(int i=1;i<=10;++i){ var[i].x=i; var[i].y=i+1; }
구조체 대신 각각의 변수를 잡으면 될텐데 구조체를 사용하는 이유는 뭘까? 바로 편한 코딩을 위해서다!
여러 변수를 통째로 대입하고 싶을 때 x=y; 한 줄로 끝낼 수 있다.
또한 구조체를 가지고 정렬을 할 수 있다.
'알고리즘 문제풀기 > 코딩' 카테고리의 다른 글
PS에서 사용하는 C++ STL - 초급 (pair) (401) | 2021.08.29 |
---|---|
빠르고 편하게 코딩하는 팁 (1) | 2021.08.24 |
PS에서 사용하는 C++ STL - 초급 (vector) (374) | 2021.08.20 |
PS에서 사용하는 C++ STL - 기초 (0) | 2021.08.20 |
std::sort를 이용한 정렬 (2) | 2015.09.20 |