>  기사  >  백엔드 개발  >  중괄호를 사용하여 C에서 2D`std::array`를 올바르게 초기화하는 방법은 무엇입니까?

중괄호를 사용하여 C에서 2D`std::array`를 올바르게 초기화하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-24 06:22:24950검색

How to Correctly Initialize a 2D `std::array` in C   Using Braces?

중괄호를 사용하여 2D std::array 초기화

C로 작업하는 동안 중괄호를 사용하여 2D std::array를 초기화하는 것이 어려울 수 있습니다. . 다음 코드 조각은 문제를 보여줍니다.

std::array<std::array<int, 3>, 2> a {
    {1, 2, 3},
    {4, 5, 6}
};

이 접근 방식은 std::array, 2u>에 대한 초기화 프로그램이 너무 많다는 컴파일러 오류로 인해 컴파일에 실패합니다. 이런 일이 발생하는 이유를 이해하려면 std::array의 기본 구현을 아는 것이 중요합니다.

std::array 내부

std::array는 C 스타일 배열을 포함합니다. 따라서 올바르게 초기화하려면 클래스 자체에는 외부 중괄호가 필요하고 C 배열 멤버에는 내부 중괄호가 필요합니다.

std::array<int, 3> a1 = { { 1, 2, 3 } };

이 논리를 2D 배열로 확장하면 다음과 같은 유효한 초기화가 발생합니다.

std::array<std::array<int, 3>, 2> a2 { { { {1, 2, 3} }, { { 4, 5, 6} } } };

이 예에서는:

  • "{ { {1, 2, 3} }, { { 4, 5, 6} } }"는 클래스 중괄호로 2D 배열의 초기화를 포함합니다.
  • "{{1, 2, 3}, {4, 5, 6}}"는 내부 C 스타일 배열의 중괄호로 2D 배열의 각 행을 초기화합니다.

위 내용은 중괄호를 사용하여 C에서 2D`std::array`를 올바르게 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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