> 백엔드 개발 > C++ > 2차원 배열을 C 클래스 데이터 멤버로 정적으로 선언하려면 어떻게 해야 합니까?

2차원 배열을 C 클래스 데이터 멤버로 정적으로 선언하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-12-12 11:27:16
원래의
156명이 탐색했습니다.

How Can I Statically Declare a 2-D Array as a C   Class Data Member?

2차원 배열을 클래스 데이터 멤버로 정적으로 선언

C에서 클래스는 2차원 배열을 클래스 데이터 멤버로 포함할 수 있습니다. 데이터 멤버. 그러나 동적 메모리 할당은 일반적으로 이러한 배열을 만드는 데 사용됩니다. 이를 방지하고 연속적인 메모리 할당을 달성하려면 배열을 정적으로 선언하는 것을 고려할 수 있습니다.

클래스 내에서 정적으로 선언된 2D 배열은 사용자 지정 생성자를 사용하여 초기화할 수 있습니다. 예는 다음과 같습니다.

class Grid {
public:
    unsigned NR, NC;
    double Coordinates[NR][NC];

    Grid(unsigned rows, unsigned columns) : NR(rows), NC(columns) {}
};
로그인 후 복사

이 클래스는 NR 및 NC 차원의 2D 배열 좌표를 정의합니다. 생성자는 객체가 생성될 때 NR 및 NC를 초기화합니다.

C에서 정적으로 2차원 배열을 선언하는 것이 가능하지만 배열의 크기는 컴파일 타임에 알려져야 한다는 점에 유의하는 것이 중요합니다. . 일부 시나리오에서는 이것이 제한될 수 있습니다.

대체 접근 방식은 벡터 벡터(std::Vector>)를 사용하여 2차원 배열을 나타내는 것입니다. 이는 치수를 동적으로 조정할 수 있으므로 더 많은 유연성을 제공합니다. 그러나 이로 인해 연속 배열에 비해 메모리 액세스 효율성이 떨어질 수 있습니다.

위 내용은 2차원 배열을 C 클래스 데이터 멤버로 정적으로 선언하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿