Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- stream
- Algorithm
- 혼자 공부하는 C언어
- JSON
- 윤성우의 열혈 자료구조
- Serialization
- list 컬렉션
- C 언어 코딩 도장
- 윤성우 열혈자료구조
- C programming
- R
- 메모리구조
- coding test
- buffer
- datastructure
- 이것이 자바다
- insertion sort
- 이스케이프 문자
- Graph
- Stack
- s
- Selection Sorting
- 알기쉬운 알고리즘
Archives
- Today
- Total
Engineering Note
[C++] STL(Standard Template Library) 본문
Programming Language/C++
[C++] STL(Standard Template Library)
Software Engineer Kim 2021. 2. 22. 21:06STL(Standard Template Library)
- Container와 Algorith을 일반화한 자료구조 라이브러리로서 일반화된 라이브러리(generic library)의 사용을 위해서 Template을 제공한다.
- STL의 핵심구성요소는 Container, Algorithm, iterator
- STL은 정수, 실수 등의 기본형은 물론이고 사용자 정의형 등 어떤 자료형의 데이터에 대해서도 사용할 수 있는 자료구조를 제공해 주며 또한 자료구조의 형태나 내부 구조에 상관 없이 어떤 데이터 집합에도 적용해서 사용할 수 있는 일반화된 알고리즘을 제공한다.
Program의 구성요소 및 STL의 필요성
- Program은 Container(자료구조)와 Algorithm(알고리즘)으로 구성된다.
- 좋은 프로그램을 작성하려면 상황에 다라 자료구조를 잘 선택해야 함
- 삽입, 삭제 추가, 검색, 정렬, 뒤집기, 병합, 추출, 누적 합계 등의 다양한 알고리즘을 사용해야만 하는데 STL이 이 프로그램을 개발하는 데 없어서는 안 되는 자료구조와 알고리즘 중 자주 사용되는 것들을 일반화해서 제공하는 라이브러리이다.
Container(컨테이너)
- 처리하고자 하는 데이터를 표현하는 방법
- 객체들을 담아둘 수 있는 개체를 말한다.
- ex) 배열과 유사한 vector를 들 수 있다.
Iterator(반복자)
- 컨테이너와 알고리즘 사이에서 이를 연결해 주는 역할을 한다.
- 반복자는 컴테이너가 관리하는 요소에 접근할 수 있게 해 주는 추상호된 개념
- 프로그램을 하는 데 있어 반복적인 작업에 이름을 붙여서 프로그래머가 반복적인 작업을 할 때 사용하는 패턴 중 하나
- 반복자를 통해 컨테이너 내의 요소들을 다양한 방법으로 다룰 수 있기 때문에 알고리즘과 컨테이너를 연결하는 매체가 되고, 컨테이너에 알고리즘을 적용하려면 반복자가 꼭 필요하다.
Algorithm
- 자료들을 가공하고 적적히 사용할 수 있는 방법을 말한다.
- ex) 컨테이너를 정렬하기 위한 Sort
- STL에서는 알고리즘을 컨테이너에서 완전히 분리시켜 컨테이너 종류와는 무관하게 어떤 컨테이너에도 적용할 수 있도록 이식석을 높엿다.
'Programming Language > C++' 카테고리의 다른 글
[C++] C++ 공부할 것 (0) | 2021.05.28 |
---|---|
[C++] VC C++ 컴파일 환경설정 (0) | 2021.05.13 |
[C++] 객체와 클래스 (0) | 2021.05.06 |
Comments