본문 바로가기
프로그래밍

STL Vector정리(1)

by _BlankSpace 2017. 4. 8.

 

표준 템플릿 라이브러리 (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

댓글