Biblioteca Padrão C++: visão geral completa e exemplos de código

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Biblioteca Padrão C++: visão geral completa



A Biblioteca Padrão C++ (frequentemente chamada de STL — Standard Template Library) é um poderoso conjunto de classes e funções de template que faz parte de qualquer compilador C++. Ela fornece soluções prontas, testadas e otimizadas para as tarefas de programação mais comuns: desde trabalhar com arrays dinâmicos e strings até algoritmos complexos de ordenação e busca. O uso da biblioteca padrão acelera significativamente o desenvolvimento, aumenta a confiabilidade do código e facilita sua manutenção.



Neste artigo, detalharemos os principais componentes da biblioteca padrão C++: containers, algoritmos, iterators, strings, streams de entrada/saída e smart pointers. Cada seção será acompanhada de exemplos práticos de código.



Containers



Containers são classes projetadas para armazenar e organizar conjuntos de dados. Eles são divididos em três categorias principais:



  • Containers sequenciais: armazenam elementos em ordem linear. Principais representantes: std::vector (array dinâmico), std::list (lista duplamente encadeada), std::deque (fila dupla).
  • Containers associativos: armazenam elementos de forma ordenada, garantindo busca rápida. Exemplos: std::set (conjunto), std::map (dicionário "chave-valor").
  • Containers associativos não ordenados (C++11): usam hash tables para acesso ainda mais rápido. Exemplos: std::unordered_set, std::unordered_map.


Exemplo de trabalho com std::vector e std::map:



#include <iostream>#include <vector>#include <map>#include <string>

int main() { // Container sequencial std::vector<int> numbers = {10, 20, 30, 40}; numbers.push_back(50); // Adicionar ao final

std::cout << "Vetor: "; for (int n : numbers) { std::cout << n << " "; } std::cout << std::endl;

// Container associativo std::map<std::string, int> ages; ages["Alice"] = 30; ages["Bob"] = 25;

std::cout << "Idade de Alice: " << ages["Alice"] << std::endl; return 0;}


Iterators



Iterators são uma forma generalizada de acessar elementos de um container. Eles funcionam como "smart pointers" e permitem percorrer qualquer container de maneira uniforme. Os principais tipos de iterators são: begin() (ponteiro para o primeiro elemento) e end() (ponteiro para o elemento após o último).



Exemplo de uso de iterator para percorrer um std::list:



#include <iostream>#include <list>

int main() { std::list<double> prices = {19.99, 29.99, 9.99};

// Uso de iterator for (auto it = prices.begin(); it != prices.end(); ++it) { std::cout << *it << " "; } std::cout << std::endl; return 0;}


Algorithms



A biblioteca <algorithm> contém dezenas de funções prontas para trabalhar com sequências de dados: ordenação, busca, cópia, transformação e muito mais. Os algoritmos trabalham com iterators, o que os torna universais.



Algoritmos populares:

  • std::sort — ordenação de um intervalo.
  • std::find — busca pela primeira ocorrência de um valor.
  • std::copy — cópia de elementos.
  • std::accumulate — soma de elementos (de <numeric>).


Exemplo de ordenação e busca:



#include <iostream>#include <vector>#include <algorithm>

int main() { std::vector<int> data = {5, 2, 8, 1, 9

Recommendations