IT/Programming

[C++] Introduction to STL (Standard Template Library)

Uncle D. 2023. 4. 24. 22:37
반응형

1. C++ STL 이란?

C++ STL C++ Standard Template Library의 줄임말로,

C++ 프로그래밍 언어에서 자주 사용되는 알고리즘, 컨테이너, 함수 객체 등의 일련의 템플릿 클래스와 함수들을 모아놓은 라이브러리입니다.

C++ STL은 다양한 자료구조와 알고리즘을 제공하며, 매우 효율적으로 작동합니다.

C++ STL은 템플릿 기반으로 작성되어 있기 때문에, 제네릭 프로그래밍(Generic Programming)을 할 수 있습니다. 제네릭 프로그래밍은 데이터 타입에 독립적인 코드를 작성하는 것으로, 일반적으로 더 유연하고 재사용성이 높은 코드를 작성할 수 있습니다.

2. C++ STL 의 구성요소

STL은 다음과 같은 주요 컴포넌트들로 구성됩니다.

컨테이너(Container): 데이터를 저장하는 객체로, Vector, List, Deque, Map 등 다양한 종류가 있습니다.

반복자(Iterator): 컨테이너의 원소들을 참조하거나 조작하는 데 사용되는 객체입니다.

알고리즘(Algorithm): 정렬, 검색, 변형 등 다양한 알고리즘이 구현되어 있습니다.

함수 객체(Function Object): 함수처럼 동작하는 객체로, STL의 알고리즘에서 사용됩니다.

스마트 포인터(Smart Pointer): 자동 메모리 관리를 제공하는 객체로, 메모리 누수를 방지할 수 있습니다.

3. STL 사용 방법

C++ STL을 사용하는 가장 기본적인 방법은 컨테이너를 만들고, 반복자를 사용하여 컨테이너의 원소들을 조작하는 것입니다. 

 

예를 들어, vector에 원소를 추가하고, 반복자를 사용하여 vector의 원소를 출력하는 코드는 다음과 같습니다.

#include <iostream>
#include <vector>

int main() {
    std::vector<int> v{1, 2, 3};

    // Vector에 원소 추가하기
    v.push_back(4);

    // 반복자를 사용하여 Vector의 원소 출력하기
    for (auto it = v.begin(); it != v.end(); ++it) {
        std::cout << *it << ' ';
    }
    std::cout << '\n';

    return 0;
}

위의 예에서는,

vector를 생성하고 push_back() 함수를 사용하여 vector에 원소를 추가하고 그리고 반복자를 사용하여 원소를 출력하고 있습니다.

이와 같이 C++ STL을 사용하여 매우 간결하고 효율적인 코드를 작성할 수 있습니다.

 

vector 에 데이터를 추가할때는 push_back() 과 emplace_back() 을 사용할 수 있는데요.

블로그의 다른 글에서 그 차이점을 살펴보도록 하겠습니다.

 

감사합니다.

반응형