English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
STL은 'Standard Template Library'의 약자로, 중국어로 '표준 템플릿 라이브러리'로 번역됩니다. STL은 C++ 표준 라이브러리의 일부로, 별도로 설치하지 않아도 됩니다.
이전 장에서는 C++ 템플릿 개념.++ STL(표준 템플릿 라이브러리)는 강력한 C++ 템플릿 클래스는 일반 템플릿 클래스와 함수를 제공하며, 벡터, 링크드 리스트, 큐, 스택과 같은 다양한 인기와 일반적인 알고리즘과 데이터 구조를 구현할 수 있습니다.
C++ 템플릿을 잘 지원하며, STL
템플릿을 사용하여 일반적인 데이터 구조와 알고리즘을 모두 구현했으며, 데이터 구조와 알고리즘을 분리했습니다. 예를 들어, vector의 기본은 시퀀스 테이블(배열)이며, list
의 기본은 양방향 링크드 리스트이며, deque의 기본은 순환 큐이며, set의 기본은 레드-블랙 트리이며, hash_set의 기본은 해시 테이블입니다.
C++ 표준 템플릿 라이브러리의 핵심 구성 요소는 다음과 같습니다:
구성 요소 | 설명 |
---|---|
컨테이너(Containers) | 컨테이너는 특정 유형의 객체 집합을 관리하는 데 사용됩니다. C++++ 다양한 타입의 컨테이너를 제공합니다. 예를 들어 deque, list, vector, map 등. |
알고리즘(Algorithms) | 알고리즘은 컨테이너에 작용합니다. 그들은 컨테이너 내용에 대해 초기화, 정렬, 검색 및 변환 등 다양한 작업을 수행하는 방법을 제공합니다. |
이터레이터(Iterators) | 이터레이터는 요소 집합의 요소를 순회하는 데 사용됩니다. 이 요소 집합은 컨테이너나 컨테이너의 일부일 수 있습니다. |
이 세 구성 요소는 모두 풍부한 предопределенные функции를 가지고 있으며, 복잡한 작업을 간단하게 처리하는 데 도움을 줍니다.
아래 프로그램은向量 컨테이너(한 C++ 컨테이너)를 보여줍니다.++ 표준 템플릿 라이브러리와 매우 유사하며, 배열과 유사하지만, 필요에 따라 크기를 자동으로 처리할 수 있는向量가 있습니다:
#include <iostream> #include <vector> using namespace std; int main() { // int를 저장하는 저장소를 생성합니다 vector<int> vec; int i; // vec의 원래 크기를 표시합니다 cout << "vec의 원래 크기 = " << vec.size() << endl; // 추가 6 개의 값을 저장소에 추가합니다 for(i = 0; i < 6; i++} vec.push_back(i+1); } // vec 확장 후의 크기를 표시합니다 cout << "vec 확장 후의 크기 = " << vec.size() << endl; // 저장소의 값을 접근합니다 5 개의 값 for(i = 0; i < 5; i++} cout << " vec[" << i << "]의 값 = " << vec[i] << endl; } // 이터레이터 iterator를 사용하여 값을 접근합니다 vector<int>::iterator v = vec.begin(); while( v != vec.end()) { cout << "v의 값 = " << *v << endl; v++; } return 0; }
위 코드가 컴파일 및 실행될 때, 다음과 같은 결과가 생성됩니다:
vec의 원래 크기 = 0 vec 확장 후의 크기 = 6 vec[0]의 값 = 1 vec[1]의 값 = 2 vec[2]의 값 = 3 vec[3]의 값 = 4 vec[4]의 값 = 5 vec[5]의 값 = 6 v의 값 = 1 v의 값 = 2 v의 값 = 3 v의 값 = 4 v의 값 = 5 v의 값 = 6
위 예제에서 사용된 다양한 함수에 대해 몇 가지 주의할 점이 있습니다:
push_back( ) 멤버 함수는 벡터의 끝에 값을 삽입하며 필요하다면 벡터의 크기를 확장합니다。
size( ) 함수는 벡터의 크기를 표시합니다。
begin( ) 함수는 벡터의 시작에 대한 이터레이터를 반환합니다。
end( ) 함수는 벡터의 끝에 대한 이터레이터를 반환합니다。