기본 패턴
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 | 조건식 기반 탐색 |
| 반복자 | 컨테이너를 순회하는 일반화된 인터페이스 |
주의할 점
정렬 알고리즘은 보통 원본 컨테이너를 직접 바꿉니다. 원본 보존이 필요하면 복사본에서 수행해야 합니다.