비수정 알고리즘: find, count, all_of
컨테이너의 내용을 변경하지 않고 검색하고 검사합니다.
비수정 알고리즘: find, count, all_of은(는) CoddyKit의 무료 C++ Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C++ Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
읽기 전용 연산
비수정 알고리즘은 범위를 변경하지 않고 검사합니다. 이러한 알고리즘은 <algorithm>에 정의되어 있습니다.
std::find
값과 같은 첫 번째 원소를 찾습니다. 반복자를 반환하며, 찾지 못하면 end를 반환합니다.
#include <algorithm>
std::vector<int> v = {3, 1, 4, 1, 5};
auto it = std::find(v.begin(), v.end(), 4);
if (it != v.end()) std::cout << "found at " << (it - v.begin());std::find_if
조건자와 일치하는 첫 번째 원소를 찾습니다.
auto it = std::find_if(v.begin(), v.end(),
[](int x) { return x > 3; });std::find_if_not
find_if의 반대입니다. 일치하지 않는 첫 번째 원소를 찾습니다.
std::count와 std::count_if
발생 횟수 또는 일치하는 원소의 수를 셉니다. ptrdiff_t를 반환합니다.
int n = std::count(v.begin(), v.end(), 1); // count of 1s
int m = std::count_if(v.begin(), v.end(),
[](int x) { return x > 2; });std::all_of std::any_of std::none_of
범위에 대해 조건자를 검사합니다:
all_of— 모든 원소가 일치합니다any_of— 하나 이상의 원소가 일치합니다none_of— 일치하는 원소가 없습니다
bool allPositive = std::all_of(v.begin(), v.end(),
[](int x) { return x > 0; });
bool anyEven = std::any_of(v.begin(), v.end(),
[](int x) { return x % 2 == 0; });std::equal
두 범위를 원소별로 비교합니다.
std::vector<int> a = {1, 2, 3};
std::vector<int> b = {1, 2, 3};
bool same = std::equal(a.begin(), a.end(), b.begin());std::mismatch
두 범위에서 서로 다른 첫 번째 원소 쌍을 찾습니다. 반복자 쌍을 반환합니다.
std::adjacent_find
서로 인접하면서 같은 첫 번째 원소 쌍을 찾습니다(또는 조건자와 일치하는 쌍을 찾습니다).
std::vector<int> v = {1, 2, 2, 3};
auto it = std::adjacent_find(v.begin(), v.end());
std::cout << *it; // 2std::min_element std::max_element
가장 작은 원소 또는 가장 큰 원소를 가리키는 반복자를 반환합니다. 다른 방식으로 비교하려면 조건자를 전달하십시오.
auto it = std::max_element(v.begin(), v.end());
std::cout << *it;std::for_each
각 원소에 함수를 호출합니다. 함수의 반환 값은 무시됩니다.
std::for_each(v.begin(), v.end(),
[](int x) { std::cout << x << " "; });범위 버전(C++20)
C++20에는 두 반복자 대신 단일 범위를 받는 범위 오버로드가 추가되었습니다. 문법이 더 깔끔합니다.
#include <ranges>
auto it = std::ranges::find(v, 4);
bool ok = std::ranges::all_of(v, [](int x) { return x > 0; });빠른 확인
모든 원소가 조건자와 일치할 때만 true를 반환하는 알고리즘은 무엇인가요?
요약
비수정 알고리즘은 범위를 변경하지 않고 검사합니다: find, count, all_of/any_of/none_of, min_element, equal 등이 있습니다. C++20 범위는 더 깔끔한 단일 범위 문법을 제공합니다.
자주 묻는 질문
“비수정 알고리즘: find, count, all_of” 강의는 무료인가요?
네 — “비수정 알고리즘: find, count, all_of” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C++ Academy 강의 전체를 잠금 해제할 수 있습니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“비수정 알고리즘: find, count, all_of”에서 뭘 배우나요?
컨테이너의 내용을 변경하지 않고 검색하고 검사합니다. 브라우저에서 직접 실행하는 실습 코드로 C++ Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
C++ Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 C++ Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“비수정 알고리즘: find, count, all_of” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 C++ Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 C++ Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 비수정 알고리즘: find, count, all_of
- 수정 알고리즘: transform, copy_if, replace
- 정렬과 분할: sort, stable_partition
- 수치 알고리즘: accumulate, reduce, transform_reduce