It won't hurt to try

[C++/윈도우프로그래밍응용]24. 표준 템플릿 라이브러리(STL) 본문

C++/윈도우프로그래밍응용

[C++/윈도우프로그래밍응용]24. 표준 템플릿 라이브러리(STL)

yongki.doki 2021. 11. 2. 08:52

STL = Standard Template Library

  • 많은 프로그래머들이 공통적으로 사용하는 자료 구조와 알고리즘을 구현한 클래스들로 구성
  • 템플릿(template)기법을 사용
    → 어떤 자료형에 대해서도 사용 가능
  • 3가지 종류의 컴포넌트 
    → 컨테이너(container), 반복자(iterator), 알고리즘(algorithm)

컨테이너(container)

  • 배열, 연결 리스트, 벡터, 집합, 사전, 트리 등

반복자(iterator)

  • 특히, 컨테이너와 알고리즘 간의 연결 다리 역할

알고리즘(algorithm)

  • 탐색(find), 정렬(sort), 반전(reverse), 삭제(remove), 변환(transform) 등 다양한 작업 수행

STL의 장점

유용한 수많은 컨테이너와 알고리즘 제공

  • 자료 구조와 알고리즘의 다양한 기능 활용 가능

어떠한 자료형에 대해서도 사용 가능

  • 객체 지향 기법과 템플릿을 적용하여 만들이짐

전문가가 설계 및 구현하고 테스트를 거친 검증된 라이브러리

  • C++언어의 설계 과정에서 설계 및 구현되어 상세 불명의 오픈소스 및 제3자 제작 라이브러리에 비해 호환성이 높음

벡터

  = 동적 배열

vector<자료형> <변수명>(<요소 개수>);
vector<int> scores(10);

push_back(), pop_back()

백터의 맨 뒤에 요소를 추가하거나 제거하는 멤버 함수

vector<int> scores;

scores.push_back(92);
scores.push_back(11);
scores.push_back(13);
scores.push_back(25);

scores.pop_back();

반복문으로 값을 출력

vector<int> scores;

for(auto p = v.begin; p != v.end(); ++p)
  cout << *p << endl;

 

300x250
300x250
Comments