Use a biblioteca de algoritmos padrão
Ordene e busque em coleções com algoritmos reutilizáveis e bem testados.
- Aplicar
std::sort,std::finde 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.
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}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á.
Ordene e imprima valores
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
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…