>백엔드 개발 >C++ >C 11에서 0에서 N까지 Constexpr 배열을 만드는 방법은 무엇입니까?

C 11에서 0에서 N까지 Constexpr 배열을 만드는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-02 09:35:10164검색

How to Create a Constexpr Array from 0 to N in C  11?

C 11에서 0부터 N까지의 Constexpr 배열 만들기

현대 C 프로그래밍 영역에서 constexpr 배열의 개념은 비교할 수 없는 뛰어난 기능으로 큰 주목을 받았습니다. 효율성 및 컴파일 타임 평가 기능. 이러한 혁신 속에서 다음과 같은 질문이 제기됩니다. C 11에서 0부터 n까지 범위의 constexpr 배열을 어떻게 구성할 수 있습니까?

이 과제의 핵심은 constexpr 생성자와 반복 초기화의 강력한 조합에 있습니다. 이 접근 방식의 본질을 분석해 보겠습니다.

#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';
}

이 코드 조각에서는 템플릿 구조 'A' 내에 constexpr 생성자를 정의합니다. 이 생성자는 for 루프를 사용하여 0에서 N-1 범위의 요소로 크기 N의 정수 배열 'arr'을 초기화합니다.

'A'를 'a'라는 constexpr 객체로 인스턴스화함으로써 우리는 효과적으로 컴파일 타임에 값이 계산되는 constexpr 배열입니다. 후속 루프는 이 배열을 반복하여 해당 요소를 표준 출력 스트림에 인쇄합니다.

요약하자면, constexpr 생성자의 다양성과 반복 초기화를 활용하여 0에서 1까지 범위의 constexpr 배열을 구성하는 방법을 만들었습니다. n은 C 11에서 이 언어가 제공하는 효율성과 컴파일 타임 평가 능력을 보여줍니다.

위 내용은 C 11에서 0에서 N까지 Constexpr 배열을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.