"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Se puede std::array inicializarse de forma predeterminada?

¿Se puede std::array inicializarse de forma predeterminada?

Publicado el 2024-12-21
Navegar:789

Can std::array be Default-Initialized?

¿Se puede std::array inicializarse de forma predeterminada?

Al declarar una variable como std::array x; , puede garantizar que todos sus elementos se inicializarán de forma predeterminada. Según el estándar del lenguaje C 11 (§8.5/11), cualquier objeto sin un inicializador explícito se inicializa de forma predeterminada.

Sin embargo, debe tener en cuenta que la inicialización predeterminada no tiene ningún efecto en objetos que no son de clase ni tipos de matrices (§8.5/6), dejando sus valores indeterminados. Por ejemplo, una matriz inicializada de forma predeterminada de dichos tipos tendrá valores indeterminados.

Inicialización de valores de matrices

Si desea inicializar todos los elementos de la matriz en un valor T{}, esto no es una inicialización predeterminada sino una inicialización de valor (8.5/7). Puede inicializar valores de matrices fácilmente en C 11 usando inicializadores vacíos:

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

Esto inicializará el valor de todos los elementos de la matriz, lo que dará como resultado un valor consistente de 0 para los números enteros y los valores predeterminados para sus respectivos tipos de datos.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3