[c++] 자료구조 및 알고리즘 라이브러리 활용 방법

이번 포스트에서는 C++에서 자료구조와 알고리즘을 구현하고 활용하기 위해 사용되는 표준 라이브러리에 대해 알아보겠습니다.

Contents

  1. STL (Standard Template Library)
  2. 자료구조 활용 예시
  3. 알고리즘 활용 예시

STL (Standard Template Library)

C++ 표준 라이브러리는 STL이라고도 불리는데, 이는 자료구조와 알고리즘을 구현하기 위한 템플릿 클래스와 함수들로 구성되어 있습니다. STL의 핵심 구성 요소로는 다음이 있습니다.

STL은 #include <algorithm>, #include <vector>, #include <list> 등의 형태로 사용할 수 있습니다.


자료구조 활용 예시

벡터 (Vector)

벡터는 동적 배열을 나타내는 자료구조로, 크기가 가변적입니다. 다음은 벡터를 선언하고 활용하는 간단한 예제 코드입니다.

#include <vector>
#include <iostream>

int main() {
    std::vector<int> vec;

    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);

    for (int i : vec) {
        std::cout << i << " ";
    }

    return 0;
}

큐 (Queue)

큐는 FIFO(First-In-First-Out) 순서로 데이터를 처리하는 자료구조입니다. 다음은 큐를 선언하고 활용하는 간단한 예제 코드입니다.

#include <queue>
#include <iostream>

int main() {
    std::queue<int> q;

    q.push(1);
    q.push(2);
    q.push(3);

    while (!q.empty()) {
        std::cout << q.front() << " ";
        q.pop();
    }

    return 0;
}

알고리즘 활용 예시

이진 탐색은 정렬된 배열에서 원하는 값을 찾는 알고리즘으로, STL에서 제공됩니다. 다음은 이진 탐색을 활용하는 간단한 예제 코드입니다.

#include <algorithm>
#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int target = 5;
    
    if (std::binary_search(vec.begin(), vec.end(), target)) {
        std::cout << "Found";
    } else {
        std::cout << "Not found";
    }

    return 0;
}

정렬 (Sorting)

STL은 다양한 정렬 알고리즘을 제공합니다. 다음은 벡터를 정렬하는 간단한 예제 코드입니다.

#include <algorithm>
#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
    
    std::sort(vec.begin(), vec.end());

    for (int i : vec) {
        std::cout << i << " ";
    }

    return 0;
}

이렇게 C++ 표준 라이브러리의 STL을 활용하여 다양한 자료구조와 알고리즘을 구현하고 활용할 수 있습니다. 라이브러리를 활용함으로써 개발자는 효율적이고 안정적인 코드를 작성할 수 있습니다.

참고 문헌: