"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > std::array pode ser inicializado por padrão?

std::array pode ser inicializado por padrão?

Publicado em 2024-12-21
Navegar:750

Can std::array be Default-Initialized?

O std::array pode ser inicializado por padrão?

Ao declarar uma variável como std::array x; , você pode garantir que todos os seus elementos serão inicializados por padrão. De acordo com o padrão de linguagem C 11 (§8.5/11), qualquer objeto sem um inicializador explícito é inicializado por padrão.

No entanto, você deve estar ciente de que a inicialização padrão não tem efeito em objetos que não sejam de classe e não sejam tipos de array (§8.5/6), deixando seus valores indeterminados. Por exemplo, uma matriz inicializada por padrão de tais tipos terá valores indeterminados.

Inicialização de valor de matrizes

Se você deseja inicializar todos os elementos da matriz para um determinado valor T{}, isso não é inicialização padrão, mas inicialização de valor (8.5/7). Você pode inicializar matrizes de valor facilmente em C 11 usando inicializadores vazios:

int plain_int{};
int c_style_array[13]{};
std::array cxx_style_array{};

Isso inicializará com valor todos os elementos da matriz, resultando em um valor consistente de 0 para números inteiros e os valores padrão para seus respectivos tipos de dados.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3