[c++] 표준 템플릿 라이브러리 (STL) 활용 방법

C++ 표준 라이브러리에는 많은 유용한 데이터 구조와 알고리즘들이 포함되어 있습니다. 이러한 유틸리티들은 템플릿으로 정의되어 있으므로 다양한 유형의 데이터와 함께 사용할 수 있습니다. 이번 글에서는 C++ 표준 템플릿 라이브러리(STL)를 활용하여 간단한 예제를 통해 컨테이너와 알고리즘을 사용하는 방법을 살펴보겠습니다.

컨테이너 활용하기

STL 컨테이너는 데이터를 저장하고 조작하는 기능을 제공합니다. 다양한 유형의 컨테이너가 제공되며, 각각의 특징에 맞게 사용할 수 있습니다.

벡터(Vector)

벡터는 동적 배열을 나타내는 STL 컨테이너입니다. 크기를 동적으로 조절할 수 있으며, 배열과 유사한 인터페이스를 제공합니다.

#include <vector>
#include <iostream>

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

    vec.push_back(10);
    vec.push_back(20);
    vec.push_back(30);

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

    return 0;
}

맵(Map)

맵은 키-값 쌍을 저장하는 STL 컨테이너입니다. 특정한 키를 통해 값을 검색할 수 있으며, 중복된 키를 허용하지 않습니다.

#include <map>
#include <string>
#include <iostream>

int main() {
    std::map<std::string, int> ages;

    ages["Alice"] = 25;
    ages["Bob"] = 30;
    ages["Carol"] = 28;

    std::cout << "Alice's age: " << ages["Alice"] << std::endl;

    return 0;
}

알고리즘 활용하기

STL 알고리즘은 이미 효율적으로 구현된 여러 가지 알고리즘을 제공합니다. 이러한 알고리즘들을 활용하여 데이터를 정렬하거나 검색하는 등의 작업을 수행할 수 있습니다.

정렬(Sort)

정렬 알고리즘은 데이터를 정해진 순서로 재배열하는데 사용됩니다.

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

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

    std::sort(vec.begin(), vec.end());

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

    return 0;
}

검색(Search)

검색 알고리즘은 특정 조건을 만족하는 요소를 찾는 데 사용됩니다.

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

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

    auto it = std::find(vec.begin(), vec.end(), 5);

    if (it != vec.end()) {
        std::cout << "Found at index " << std::distance(vec.begin(), it);
    } else {
        std::cout << "Not found";
    }

    return 0;
}

위의 예제 코드들을 통해 C++ 표준 라이브러리(STL)를 사용하는 기초적인 방법에 대해 알아보았습니다. STL은 많은 다른 유용한 기능과 알고리즘이 있으므로, 자세한 내용은 C++ STL 관련 문서를 참고하시기 바랍니다.

참고 자료