Maison > développement back-end > C++ > Comment créer un tableau de base zéro Constexpr en C 11 ?

Comment créer un tableau de base zéro Constexpr en C 11 ?

Linda Hamilton
Libérer: 2024-12-02 17:22:14
original
968 Les gens l'ont consulté

How to Create a Constexpr Zero-Based Array in C  11?

Génération de tableaux Constexpr en C 11

Question :

Comment pouvons-nous créer un constexpr tableau de base zéro jusqu'à une taille spécifiée en C 11 ?

Réponse :

En C 14, cette tâche est devenue simple grâce à l'introduction des constructeurs et des boucles constexpr. Cependant, en C 11, nous devons adopter une approche plus complexe.

Mise en œuvre :

  1. Étape 1 : Utiliser une classe Modèle avec un constructeur Constexpr

    Nous définissons un modèle de classe A qui prend la taille du tableau N comme un paramètre de modèle. Il comprend un constructeur constexpr qui initialise un tableau arr de taille N.

  2. Étape 2 : Remplir le tableau

    Au sein du constructeur constexpr, nous itérer jusqu'à N, en attribuant à chaque élément de arr son index correspondant. Cela nous permet de remplir le tableau avec la séquence 0 à n-1.

  3. Étape 3 : Utilisation

    Nous pouvons instancier la classe A modèle pour obtenir une instance du tableau constexpr. En accédant à son membre arr, nous pouvons interagir avec ses éléments.

Voici un exemple de code démontrant cette approche en C 11 :

#include <iostream>

template<int N>
struct A {
    constexpr A() : arr() {
        for (auto i = 0; i != N; ++i)
            arr[i] = i; 
    }
    int arr[N];
};

int main() {
    constexpr auto a = A<4>();
    for (auto x : a.arr)
        std::cout << x << '\n';
}
Copier après la connexion

Ce code affichera le séquence attendue de 0 à 3, démontrant la création réussie d'un tableau de base zéro constexpr en C 11.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal