Algoritmos que não modificam: find, count, all_of
Procure e teste o conteúdo de contentores sem o alterar
Algoritmos que não modificam: find, count, all_of é uma aula grátis de C++ Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C++ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C++ Academy inclui 4 aulas no total.
Operações somente leitura
Os algoritmos não modificadores inspecionam um intervalo sem alterá-lo. Eles ficam em <algorithm>.
std::find
Localiza o primeiro elemento igual a um valor. Retorna um iterador — end se não for encontrado.
#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
Encontra o primeiro elemento que corresponde a um predicado.
auto it = std::find_if(v.begin(), v.end(),
[](int x) { return x > 3; });std::find_if_not
O complemento de find_if — o primeiro elemento que não corresponde.
std::count e std::count_if
Conta ocorrências ou elementos correspondentes. Retornam 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
Testam um predicado no intervalo:
all_of— todos os elementos correspondemany_of— pelo menos um correspondenone_of— nenhum elemento corresponde
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
Compara dois intervalos elemento a elemento.
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
Encontra o primeiro par de elementos diferentes entre dois intervalos. Retorna um par de iteradores.
std::adjacent_find
Encontra o primeiro par de elementos adjacentes iguais (ou que corresponde a um predicado).
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
Retorna um iterador para o menor ou o maior elemento. Passe um predicado para usar uma comparação diferente.
auto it = std::max_element(v.begin(), v.end());
std::cout << *it;std::for_each
Chama uma função para cada elemento. O valor de retorno da função é ignorado.
std::for_each(v.begin(), v.end(),
[](int x) { std::cout << x << " "; });Versões para intervalos (C++20)
O C++20 adicionou sobrecargas para intervalos que aceitam um único intervalo em vez de dois iteradores. A sintaxe é mais limpa.
#include <ranges>
auto it = std::ranges::find(v, 4);
bool ok = std::ranges::all_of(v, [](int x) { return x > 0; });Verificação rápida
Qual algoritmo retorna true somente quando todos os elementos correspondem a um predicado?
Recapitulação
Os algoritmos não modificadores inspecionam intervalos sem alterá-los: find, count, all_of/any_of/none_of, min_element e equal. Os intervalos do C++20 oferecem uma sintaxe mais limpa para um único intervalo.
Aprenda C++ com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 51
- Aulas
- 203
Perguntas Frequentes
A aula “Algoritmos que não modificam: find, count, all_of” é grátis?
Sim — o texto completo de “Algoritmos que não modificam: find, count, all_of” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C++ Academy, atualize para CoddyKit PRO. O curso de C++ Academy inclui 4 aulas no total.
O que vou aprender em “Algoritmos que não modificam: find, count, all_of”?
Procure e teste o conteúdo de contentores sem o alterar Você pratica C++ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar C++ Academy?
Nenhuma experiência prévia é necessária. C++ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Algoritmos que não modificam: find, count, all_of”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de C++ Academy?
Sim. Cada aula de C++ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Algoritmos que não modificam: find, count, all_of
- Transformação e modificação: transform, copy_if, replace
- Ordenação e particionamento: sort, stable_partition
- Algoritmos numéricos: accumulate, reduce, transform_reduce