1. 자료구조에 대한 이해
자료구조란 무엇인가
이제 우리는 알고리즘을 공부함에 있어 가장 기저에 해당하는 내용을 모두 학습하였습니다. 그렇다면, 이제 알고리즘을 짜 봐야겠죠! 하지만 그 이전에, 우리는 한 가지를 더 봐야 합니다. 바로 자료구조입니다.
자료구조가 뭐냐 싶을 수도 있는데, 자료 구조는 프로그램이 자료를 저장하는 방식을 의미합니다.
컴퓨터는 기본적으로 자료를 처리하는 기계입니다. 이 말에 대한 이해가 다소 어려울 수도 있는데, 어떠한 프로그램이든, 문서 파일이든, 컴퓨터에게는 모두 자료입니다. 그래서 자료를 어떻게 저장하고 접근하느냐가 컴퓨터의 입장에서는 굉장히 중요한 요소일 수밖에 없죠.
사실 이 글은 프로그래밍 언어(가급적이면 C++)의 문법에 대한 최소한의 이해가 된 사람을 대상으로 쓰는 시리즈입니다. 그런 분들은 이미 변수, 배열, 클래스 등의 개념을 이미 배우고 오셨을 겁니다. 그리고 이러한 것들이 바로 자료 구조에 해당합니다.
대표적인 자료 구조들
그렇다면, 앞서 언급한 여러 가지 자료 구조 이외에 다른 자료 구조로는 무엇이 있을까요? 대표적인 예시 몇 개만 들어 보자면 다음과 같은 것들이 있습니다.
- 변수
- 배열
- 큐
- 스택
- 덱
- 문자열
- 트리
- 그래프
2. C++ STL 개괄
어떤 구절의 줄임말일까?
이제 본격적으로 C++ STL에 대해 배워볼 것입니다. 그런데, STL이 무엇일까요? OTL도 아니고... (아마 이 단어를 아신다면... 넘어가죠.)
STL은 Standard Template Library의 줄임말입니다. C++에서 사용할 수 있는 여러 자료 구조, 함수, 알고리즘 등을 쓰기 쉽게 정형화해서 라이브러리화 해둔 것을 C++ STL이라고 합니다.
STL의 구성 요소
그렇다면 STL의 구성 요소는 무엇이 있을까요? STL은 크게 반복자, 컨테이너, 함수 객체로 이루어져 있습니다.
각각에 대해 상세히 설명할 시간이 후에 있을 겁니다. 일단 여기서는 간략하게만 알아보고 가도록 하죠.
- 컨테이너: 한 개 또는 여러 개의 자료를 동시에 저장할 수 있는 자료 구조 자체에 해당합니다. 상황에 따라 맞는 컨테이너를 사용해야 효율적인 알고리즘을 작성할 수 있습니다.
- 반복자: 컨테이너의 종류에 무관하게, 컨테이너 내부를 정해진 방향으로 순회하면서 컨테이너 내부의 원소에 접근할 수 있는 장치가 있어야 합니다. 이러한 장치를 반복자라고 부릅니다.
- 함수 객체: 컨테이너를 여러 가지 방향으로 활용할 수 있는 함수들을 모아놓은 객체입니다. 원소 개수 세기, 정렬하기, 소속 원소들의 합, 특정 원소의 위치 등 굉장히 많은 함수들이 모여 있습니다.
'[CONCEPT] > [Chapter 2] C++ STL과 몇 가지 자료 구조' 카테고리의 다른 글
| [Theme 7] 큐, 스택, 덱 (0) | 2025.01.22 |
|---|---|
| [Theme 6] 벡터 & STL 공통 문법 (0) | 2025.01.22 |
| [Theme 5] 선형 자료 구조 (0) | 2025.01.22 |
