C++STL과 알고리즘

알고리즘 라이브러리 기본

`std::sort`, `std::find`, `std::find_if`를 중심으로 C++ 알고리즘 라이브러리의 기본 흐름을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

cpp
std::sort(values.begin(), values.end());
auto it = std::find(values.begin(), values.end(), 10);

설명

  • C++ 표준 알고리즘은 컨테이너 자체가 아니라 반복자 범위를 받아서 동작합니다.
  • std::sort는 정렬, std::find는 값 탐색, std::find_if는 조건 기반 탐색에 자주 쓰입니다.
  • 컨테이너와 알고리즘을 분리한 설계 덕분에 같은 알고리즘을 여러 자료구조에 재사용할 수 있습니다.
  • 람다와 함께 쓰면 짧은 조건식을 자연스럽게 넣을 수 있습니다.

짧은 예제

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

int main() {
    std::vector<int> values{7, 2, 9, 4};
    std::sort(values.begin(), values.end());

    auto it = std::find_if(values.begin(), values.end(), [](int value) {
        return value > 5;
    });

    if (it != values.end()) {
        std::cout << *it << "\n";
    }
}

빠른 정리

항목설명
begin() / end()알고리즘이 받는 범위
std::sort범위 정렬
std::find값 일치 탐색
std::find_if조건식 기반 탐색
반복자컨테이너를 순회하는 일반화된 인터페이스

주의할 점

정렬 알고리즘은 보통 원본 컨테이너를 직접 바꿉니다. 원본 보존이 필요하면 복사본에서 수행해야 합니다.