アレイの作成を理解するのを助ける:タスクは、任意の数の測定値とそれらの任意の深度を持つ配列を動的に構築することです。 入力は任意の(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;
};
、あなたはこれらを取得しますタイプ:
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次元配列への新規作成、削除、および索引付けのためのカプセル化されたN次元配列クラス。 (ヒント:作成/削除時にサイズを表すためにstd::array<unsigned int, N>
を使用し、インデックスにインデックスを付けるときはインデックスを使用します)。
関連する問題
- 1. 1次元ダイナミックアレイを作成する
- 2. PHPアレイ/多次元/ダイナミックアレイ
- 3. N次元cv :: Matの次元のサイズ
- 4. n次元マッチングアルゴリズム
- 5. n次元ベクトル
- 6. N 2次元アレイ
- 7. シングルトン次元のない1次元配列を、1次元次元の1次元配列で、どのようにインデックスするのですか?
- 8. 3次元配列のn次元を一緒にR
- 9. Numpyの1次元LDA出力次元
- 10. mySQL、2次元の1次元へ
- 11. C n次元アレイをn次元配列パラメータとして使用する
- 12. n次元ベクトルをフラット化
- 13. 1次元
- 14. 1次元スパーステンソル
- 15. 1次元アニメーション
- 16. MATLAB:1次元データを2次元プロットにプロットする
- 17. 多次元配列を1次元配列に変換する
- 18. 1次元配列を2次元配列に変換する
- 19. 1次元インデックスを2次元インデックスに変換する
- 20. Matlabの1次元行列を2次元に変換する
- 21. 2次元配列を垂直/水平に反転する
- 22. インデックス一次元でN次元numpyのアレイ
- 23. 3次元1次元配列からタプルを作成する
- 24. 1次元リストから多次元リストを作成する
- 25. このn次元データセットを反復処理する方法は?
- 26. pandas series/dataframeの各値をn> 1次元にマップする
- 27. n次元アークパスを計算する
- 28. は多次元1
- 29. Push_back 1次元ベクトルを2次元ベクトル配列に
- 30. 1次元多次元配列への入れ子多次元配列
ディメンションは、索引付けの問題として考えることができます。 – VTT
あなたは1次元配列を作成して、サイズを同じサイズにすることができます。 4次元配列? –
たとえば、6つの項目で配列を作成することができます。 2D配列2x3または3x2アイテム、1x2x3または1x3x2アイテムの3D配列など、6つのアイテムを持つ1D配列を含むものと考えることができます。 – VTT