>백엔드 개발 >C++ >C 11 `constexpr` 배열을 0에서 N으로 초기화하는 방법은 무엇입니까?

C 11 `constexpr` 배열을 0에서 N으로 초기화하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-11 05:19:10257검색

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

C 11에서 0부터 N까지 Constexpr 배열 초기화

C 11에서 0부터 지정된 정수 n까지의 constexpr 배열을 생성하려면 약간의 추가 작업이 필요합니다. 최신 C 버전보다 노력이 필요합니다. 수행 방법은 다음과 같습니다.

Constexpr 생성자와 루프 사용:

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

이 코드에서:

  • 배열 구조체 템플릿은 constexpr 배열을 나타냅니다.
  • constexpr 생성자 루프를 사용하여 배열 요소를 0에서 N-1까지 초기화합니다.
  • main()에서 Array<5> 생성되고 해당 요소가 콘솔에 인쇄됩니다. 이는 0, 1, 2, 3, 4를 출력해야 합니다.

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

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