C++ Academy · Aula

Algoritmos que não modificam: find, count, all_of

Procure e teste o conteúdo de contentores sem o alterar

Aula 1 de 414 etapas

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 correspondem
  • any_of — pelo menos um corresponde
  • none_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;   // 2

std::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.

Grátis para começar

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

  1. Algoritmos que não modificam: find, count, all_of
  2. Transformação e modificação: transform, copy_if, replace
  3. Ordenação e particionamento: sort, stable_partition
  4. Algoritmos numéricos: accumulate, reduce, transform_reduce
← Voltar para C++ Academy