Heim >Backend-Entwicklung >C++ >Wie initialisiere ich ein C 11-Array „constexpr' von 0 auf N?

Wie initialisiere ich ein C 11-Array „constexpr' von 0 auf N?

DDD
DDDOriginal
2024-12-11 05:19:10259Durchsuche

How to Initialize a C  11 `constexpr` Array from 0 to N?

Initialisieren eines Consexpr-Arrays von 0 bis N in C 11

In C 11 erfordert das Erstellen eines Constexpr-Arrays, das von 0 bis zu einer angegebenen Ganzzahl n reicht, etwas mehr Aufwand als in späteren C-Versionen. So kann es gemacht werden:

Verwendung eines Constexpr-Konstruktors und einer Schleife:

#include <iostream>

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

int main() {
    constexpr auto a = Array<5>();
    for (auto x : a.arr)
        std::cout << x << '\n';
}

In diesem Code:

  • The Die Array-Strukturvorlage stellt das constexpr-Array dar.
  • Der constexpr-Konstruktor initialisiert die Array-Elemente von 0 auf N-1 mithilfe einer Schleife.
  • In main() wird eine Instanz von Array<5> wird erstellt und seine Elemente werden auf der Konsole gedruckt. Dies sollte 0, 1, 2, 3, 4 ausgeben.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich ein C 11-Array „constexpr' von 0 auf N?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn