배열 생성 이해 :이 작업은 임의의 수의 측정 및 임의의 깊이로 배열을 동적으로 구축하는 것입니다. 입력은 임의의 (n) 개의 요소가있는 1 차원 배열 int arr []
을받습니다. 예를 들어 int arr= new int[size]
과 같은 1 차원 배열을 만들 수 있고 2 차원 배열 int **arr= new int*[size]
등을 만들 수 있습니다.하지만 얼마나 많은 차원을 모르는 경우 어떻게 만들 수 있습니까? 방금 C++을 배우기 시작 했으므로 객체 지향 프로그래밍 및 벡터를 사용할 수 없습니다.1 차원 동적 배열을 N 차원으로 반전
0
A
답변
0
이러한 의견 제시 자 중 일부는 다차원 배열 대신 큰 1 차원 배열을 만드는 것이 좋습니다. 예
int *arr = new int[wLength * zLength * yLength * xLength];
대신이 방법 arr[w][z][y][x]
색인이 같은 색인의
arr[w * zLength * yLength * xLength + z * yLength * xLength + y * xLength + x]
. 물론
당신은 N 차원 배열의 유형 원하는 경우,이 같은 과부하와 템플릿을 사용할 수 있습니다 (N 주어진 상수 표현이다) :
template <typename T, int N>
struct NDimensionalArray {
typedef typename NDimensionalArray<T, N-1>::Type *Type;
};
template<typename T>
struct NDimensionalArray<T, 0> {
typedef T Type;
};
그 정의와 함께, 당신은이를 얻을 수 유형 : 운동 방치 N 차원 배열로
std::is_same<NDimensionalArray<char, 1>::Type, char*>::value; // true
std::is_same<NDimensionalArray<char, 2>::Type, char**>::value; // true
std::is_same<NDimensionalArray<char, 3>::Type, char***>::value; // true
캡슐화 N 차원 배열 newing 대한 클래스, 삭제, 인덱싱,. (힌트 : 생성/삭제할 때 크기를 나타 내기 위해 std::array<unsigned int, N>
을 사용하고 색인을 생성 할 때 색인을 사용하십시오).
관련 문제
- 1. 2 차원 배열을 1 차원으로 변환하려면 어떻게해야합니까?
- 2. C++에서 2 차원으로 1 차원 바꾸기
- 3. 은 GAMS에서 2 차원 배열을 1 차원으로 변환합니다.
- 4. 1 차원 배열을 2 차원으로 바꾸는 기본 PHP 함수
- 5. N 차원 배열을 1-d로 투영
- 6. Matlab에서 1 차원 행렬을 2 차원으로 변환
- 7. C에서 1 차원 동적 배열을 만드는 방법 #?
- 8. R : n 차원 배열을 인덱스로 사용하여 n + 1 차원 배열을 서브 세트로 만듭니다.
- 9. foreach없이 다차원 배열을 1 차원으로 만들기
- 10. 1 차원 동적 배열 만들기
- 11. 런타임시 n 차원으로 변경
- 12. PHP에서 다차원 배열을 2 차원으로
- 13. C n 차원 배열을 n 차원 배열 매개 변수로 사용
- 14. 2 차원 배열을 1 차원 배열로 변환
- 15. 1 차원 배열을 2 차원 배열로 변환
- 16. 2 차원 배열을 1 차원 배열로
- 17. 파이썬 배열을 1 차원 벡터
- 18. 동적 인 2 차원 배열을 정적 배열
- 19. 다차원 배열을 1 차원 벡터로 변환
- 20. n 차원 배열을 통해 한계에 도달
- 21. 2 차원 동적 배열 정의
- 22. 파이썬에서 싱글 톤 차원이없는 1 차원 배열을 단일 차원으로 배열로 인덱스하는 방법?
- 23. N 차원 배열을 보간하기 위해 scipy.interpolate.interpn 사용하기
- 24. 2 개의 N 차원 배열을 비교하십시오.
- 25. C - 1 차원 배열을 두 개로 매핑 - 왜 작동하지 않습니까?
- 26. 3d 배열을 2 차원으로 줄이기
- 27. PHP : 어떻게 하나의 차원으로 다차원 배열을 설정하는 동적
- 28. 인덱스 N (N-1) 차원 배열 차원 배열 더미 예와 같이 소정의 차원을 따라 N-1 차원 배열의 n 차원 어레이에 액세스하기 가장 우아한 방식으로 무엇
- 29. 2 차원 동적 배열을 만드는 함수
- 30. bash 쉘 스크립트에서 1 차원 배열을 2 차원 배열로 변환하십시오.
치수는 색인의 문제로 생각할 수 있습니다. – VTT
당신은 1 차원 배열을 만들고 크기를 같은 크기로 만들 수 있음을 의미합니다. 4 차원 배열? –
예를 들어, 6 개의 항목으로 배열을 생성 할 수 있습니다. 6 개의 아이템을 가진 1D 배열, 2D 배열 2x3 또는 3x2 아이템, 1x2x3 또는 1x3x2 아이템을 가진 3D 배열 등을 포함한다고 생각할 수 있습니다. – VTT