STL (Standard Template Library)
2025. 3. 28. 08:54ㆍProgramming Languages/C++
STL (Standard Template Library)
STL(Standard Template Library)은 C++ 표준 라이브러리의 핵심 부분으로, 템플릿 기반의 컨테이너, 반복자, 알고리즘을 제공합니다. STL을 사용하면 효율적인 데이터 구조와 알고리즘을 직접 구현할 필요 없이 바로 사용할 수 있어 프로그래밍 생산성이 크게 향상됩니다.
8.1 STL 개요
8.1.1 STL의 구성 요소
STL은 크게 세 가지 주요 구성 요소로 이루어져 있습니다:
- 컨테이너(Containers): 데이터를 저장하고 관리하는 객체
- 반복자(Iterators): 컨테이너의 요소에 접근하고 순회하는 메커니즘
- 알고리즘(Algorithms): 데이터를 처리하는 함수들
이 외에도 다음과 같은 구성 요소가 있습니다:
- 함수 객체(Functors): 함수처럼 동작하는 객체
- 어댑터(Adapters): 인터페이스를 수정하는 구성 요소
- 할당자(Allocators): 메모리 할당 및 해제를 처리하는 객체
8.1.2 STL 헤더 파일
STL을 사용하기 위한 주요 헤더 파일들:
// 컨테이너 관련 헤더
#include <vector> // 벡터
#include <list> // 이중 연결 리스트
#include <deque> // 덱(양방향 큐)
#include <queue> // 큐, 우선순위 큐
#include <stack> // 스택
#include <set> // 집합, 다중 집합
#include <map> // 맵, 다중 맵
#include <unordered_set> // 해시 집합 (C++11)
#include <unordered_map> // 해시 맵 (C++11)
#include <array> // 고정 크기 배열 (C++11)
// 알고리즘 관련 헤더
#include <algorithm> // 정렬, 검색 등 알고리즘
#include <numeric> // 수치 연산 알고리즘
// 반복자 관련 헤더
#include <iterator> // 반복자 도구
// 유틸리티 헤더
#include <functional> // 함수 객체와 함수 포인터
#include <utility> // pair, swap 등
8.1.3 네임스페이스(Namespace)
STL의 모든 구성 요소는 std 네임스페이스 안에 정의되어 있습니다:
#include <vector>
#include <iostream>
int main() {
// std 네임스페이스 사용
std::vector<int> numbers = {1, 2, 3, 4, 5};
std::cout << "벡터 크기: " << numbers.size() << std::endl;
// using 지시문 (간단한 프로그램에서는 편리하지만 대규모 프로젝트에서는 피해야 함)
using namespace std;
vector<string> names = {"Alice", "Bob", "Charlie"};
cout << "첫 번째 이름: " << names[0] << endl;
// 특정 요소만 using 선언 (더 안전한 방법)
using std::vector;
using std::cout;
using std::endl;
vector<double> values = {1.1, 2.2, 3.3};
cout << "마지막 값: " << values.back() << endl;
return 0;
}
'Programming Languages > C++' 카테고리의 다른 글
| STL 반복자 (0) | 2025.03.28 |
|---|---|
| STL 컨테이너 (0) | 2025.03.28 |
| 챕터7. 실습 문제 (0) | 2025.03.28 |
| 템플릿 메타프로그래밍 (0) | 2025.03.28 |
| 가변 템플릿(Variadic Templates) (C++11) (0) | 2025.03.28 |