0Pricing
C++ Academy · Aula

std::array de tamanho fixo

Uma alternativa segura ao array de C

std::array de tamanho fixo é 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.

Um Vetor C Seguro

std::array<T, N> é um vetor de tamanho fixo que conhece seu próprio tamanho e se comporta como um contêiner apropriado. Inclua <array>.

#include <iostream>
#include <array>
int main() {
    std::array<int, 3> a = {1, 2, 3};
    std::cout << a[0] << " " << a.size() << "\n";
}

Conhece seu Tamanho

Ao contrário de um array bruto, que se converte em um ponteiro, std::array sempre informa seu comprimento por meio de size().

#include <iostream>
#include <array>
int main() {
    std::array<double, 4> a{};
    std::cout << a.size() << "\n"; // 4
}

Laço for baseado em intervalo

Por ser um contêiner completo, pode ser percorrido com um laço baseado em intervalo.

#include <iostream>
#include <array>
int main() {
    std::array<int, 3> a = {10, 20, 30};
    for (int x : a) std::cout << x << " ";
    std::cout << "\n";
}

at() com verificação de limites

at(i) lança std::out_of_range quando o índice é inválido, enquanto operator[] não faz essa verificação; escolha conforme os requisitos de segurança.

#include <iostream>
#include <array>
int main() {
    std::array<int, 2> a = {1, 2};
    try { a.at(5); }
    catch (const std::out_of_range&) { std::cout << "out of range\n"; }
}

front, back e data

Acessadores convenientes: front() e back() retornam o primeiro e o último elemento; data() fornece um ponteiro bruto para APIs C.

#include <iostream>
#include <array>
int main() {
    std::array<int, 3> a = {7, 8, 9};
    std::cout << a.front() << " " << a.back() << "\n";
}

Copiável por valor

std::array é copiado diretamente com =, copiando cada elemento, ao contrário dos arrays brutos, que se convertem em ponteiros.

#include <iostream>
#include <array>
int main() {
    std::array<int, 3> a = {1, 2, 3};
    std::array<int, 3> b = a; // full copy
    b[0] = 99;
    std::cout << a[0] << " " << b[0] << "\n"; // 1 99
}

Funciona com algoritmos

Os algoritmos padrão aceitam iteradores de std::array; aqui, nós o ordenamos.

#include <iostream>
#include <array>
#include <algorithm>
int main() {
    std::array<int, 4> a = {4, 1, 3, 2};
    std::sort(a.begin(), a.end());
    for (int x : a) std::cout << x << " ";
    std::cout << "\n";
}

Preencher e comparar

fill(value) define todos os elementos; std::array também permite a comparação elemento a elemento com ==.

#include <iostream>
#include <array>
int main() {
    std::array<int, 3> a{};
    a.fill(5);
    std::array<int, 3> b = {5, 5, 5};
    std::cout << (a == b) << "\n"; // 1
}

O tamanho faz parte do tipo

O comprimento N está incorporado ao tipo, portanto, uma função que recebe std::array<int,3> não aceitará um array de tamanho 4. É aqui que std::span será útil mais adiante.

Alocação na pilha

std::array armazena seus elementos diretamente na própria estrutura, geralmente na pilha, sem alocação de memória dinâmica, o que o torna rápido e previsível para dados de tamanho fixo.

array versus vector

Use std::array quando o tamanho for conhecido em tempo de compilação e não mudar. Use std::vector quando o tamanho puder mudar durante a execução.

Verificação rápida

Verifique sua compreensão de std::array.

Recapitulação

Você aprendeu sobre std::array:

  • Contêiner de tamanho fixo, consciente do próprio tamanho e sem alocação de memória dinâmica.
  • at() verifica os limites; [] não.
  • Pode ser copiado, comparado e usado com algoritmos.
  • O tamanho N faz parte do tipo.

Perguntas Frequentes

A aula “std::array de tamanho fixo” é grátis?

Sim — o texto completo de “std::array de tamanho fixo” é 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 “std::array de tamanho fixo”?

Uma alternativa segura ao array de C 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 “std::array de tamanho fixo”?

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. std::array de tamanho fixo
  2. Noções básicas de std::span
  3. Passando spans para funções
  4. Limites e subspans
← Voltar para C++ Academy