Carregando
0x50Lição 6 de 9

Use a biblioteca de algoritmos padrão

Ordene e busque em coleções com algoritmos reutilizáveis e bem testados.

16 min Questionário com 5 perguntas 1 exercício de código
Ao final desta lição, você saberá
  • Aplicar std::sort, std::find e faixas de iteradores.

A biblioteca padrão separa os algoritmos dos contêineres. Muitos algoritmos aceitam uma faixa semiaberta de iteradores [first, last): o primeiro elemento está incluído e o iterador do fim, não. std::sort ordena uma faixa mutável, enquanto std::find procura um valor e devolve last quando ele não está lá. Inclua <algorithm> e prefira os algoritmos padrão a laços escritos à mão quando eles expressam a intenção com clareza.

main.cpp · C++20
1#include <algorithm>
2#include <iostream>
3#include <vector>
4
5int main() {
6    std::vector<int> values{7, 2, 5};
7    std::sort(values.begin(), values.end());
8    for (const auto& value : values) std::cout << value << " ";
9    std::cout << "\n";
10}
Saída
2 5 7

As regras de invalidação de iteradores dependem do contêiner e da operação. Por exemplo, acrescentar a um vector pode realocar o armazenamento e invalidar iteradores, ponteiros e referências aos elementos dele.

Principais conclusões

  • Os algoritmos padrão trabalham sobre faixas de iteradores.

  • Lembre-se de que as faixas são semiabertas.

  • Fique atento: mudanças num contêiner podem invalidar iteradores.

Quiz da aula

5 perguntas · aprovação com 4 acertos · até 50 XP

Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.

Pratique: escreva código em C++

Escreva C++20 no editor e execute com entradas de exemplo. O GCC 14 compila o código pelo Compiler Explorer, um serviço público gratuito; seu código-fonte e a entrada de teste são enviados para lá.

Exercício 1

Ordene e imprima valores

+25 XP

Leia uma quantidade e essa quantidade de inteiros, ordene-os em ordem crescente e imprima-os numa linha, separados por espaços.

  • Valores fora de ordem
  • Duplicatas
main.c
Carregando editor…

Seu código é compilado como C++20 com gcc 14 (-Wall -Wextra) e executado no Compiler Explorer (godbolt.org), um serviço público gratuito.

Dúvidas sobre esta lição

Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.

Carregando publicações…