표준 템플릿 라이브러리 (STL: Standard Template Library) c++을 위한 라이브러리로서 C++ 표준 라이브러리의 많은 부분에 영향
을 끼쳤다. 이것은 알고리즘, 컨테이너, 함수자 그리고 반복자라고 불리는 네가지의 구성 요소를 제공한다.
STL은 컨테이너와 연관 배열 같은 C++을 위한 일반 클래스들의 미리 만들어진 집합을 제공하는데, 이것들은 어떤 빌트인 타입과도 그리고 어떤 사용자 정의 타입과도 같이 사용될 수 있다. STL 알고리즘들은 컨테이너들에 독립적인데, 이것은 라이브러리의 복잡성을 눈에 띄게 줄여주었다.
[출처 : 위키백과]
다시 말해서 c++에서는 자주 사용하는 기능을 사용자가 직접 구현하는 불편함을 줄이기 위해서 따로 만든 라이브러리라고 할 수 있다.
먼저 위키백과에 있는 vector 소개를 보자.
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 31 | #include <iostream> #include <cstring> #include <algorithm> // std::sort #include <vector> // std::vector using namespace std; typedef struct __dataArr{ int age; char name[101]; }dataArr; bool compare(dataArr i,dataArr j) { return (i.age < j.age); } int main(void){ int line; vector<dataArr> v; cin>>line; dataArr data[line]; for(int i=0; i<line; i++){ cin>>data[i].age>>data[i].name; v.push_back(data[i]); } stable_sort(v.begin(), v.end(), compare); for(vector<dataArr>::iterator it=v.begin(); it!=v.end();++it) printf("%d %s\n",it->age, it->name); | cs |
[정리]
알고리즘 문제를 풀다 보면, 시간과 싸움을 하는 경우가 많다. 따라서 퀵 소트이나 머지 소트같이 O(nlogn)의 우월한 소트를 이용해
서 문제를 풀게 되는데, 오늘 사용해본 stl은 시간도 많이 늦지 않았고, 간단히 몇 줄만에 같은 기능을 사용할 수 있는 효과를 볼 수
있었다.
'프로그래밍' 카테고리의 다른 글
[STL] Vector 정리 (0) | 2017.04.14 |
---|---|
STL vector sort(벡터 정렬) (2) (0) | 2017.04.08 |
STL vector sort(벡터 정렬) (1) (1) | 2017.04.08 |
mutable 키워드 (0) | 2017.03.25 |
HTTP의 기본 (0) | 2017.02.13 |
댓글