問題タブ [boost-multi-array]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Boost.MultiArray の 1 行の初期化子
次のように初期化する n 次元の Boost.MultiArray があります。
したがって、MultiArray を取得するためのコードは 4 行ありますが、1 行で実行したいと考えています。size
それぞれの長さが n 次元の MultiArray を生成する簡単な方法はありますか(したがって、 と書くことができますarr(samevaluearray(n,size))
)、または MultiArray の便利なコンストラクターを見逃していましたか?
編集: n の特定の値に依存せずに機能するはずです。つまり、 に対してarr({{size,size}}
のみ機能しn=2
ます。
明確ではない可能性があるためboost::multi_array<char,n>(boost::extents[4][4][4])
、4x4x4 配列を正しく初期化しますがn
、ソースコードが変更されるたびに、すべての初期化を手動で更新する必要があるため、オプションではありません。
c++ - std::vector の boost::multi_array .. をインスタンス化する cpp 教祖の頭脳を溶かす?
オブジェクトのインスタンス化と混同していると思います..まあ..new
ステートメントがコンパイルエラーになるため、適切にオブジェクト化されていません。私のバックグラウンドは Python と Java であり、クラスではないオブジェクトを作成する C++ の方法の前で立ち往生しています。
私は C# から機械学習用のアルゴリズムを翻訳しており、多次元配列の配列を使用しています。
C# コード:
多次元配列に Boost ライブラリを使用することにしました。
そして、私はこの実行時エラーを受け取ります:
HMM::learn >>
std::bad_alloc の前に' what(): std::bad_alloc
c++ - Boost::multi_arrayループ
関数を使用してゼロベースではない配列をループする方法を取り上げたこの投稿を見てきましたがboost::multi_array::origin()
、それは単一のループしか作成しません。
multi_array
たとえば、の各次元をどのようにトラバースしますか。
上限と下限の両方が不明な配列が与えられた場合はどうなりますか?
c++ - multi_array の size_type と index の符号付き/符号なし比較のブースト
私は a を使用してboost::multi_array
おり、特定の座標が範囲内にあるかどうかを確認する必要がある場合は、次のようにします。
は次のようにTileArray3D
定義されます。
そしてTileID
次のとおりです。
GetWidth/Height/depth のシグネチャは次のとおりです。
しかしTileArray3D::size_type
、署名されておらず、TileArray3D::index
署名されています。これらの型を間違った方法で使用していますか? または、これを回避する方法はありますか?を にキャストする必要がありindex
ますsize_type
か? または問題が発生する可能性がありますか?
前もってありがとう、エル。
c++ - マルチアレイ次元のブースト
ユーザーからの入力に基づいて実行時に次元が設定される Boost マルチアレイがあります。
x,y,z
コンポーネントを介してその配列を反復処理したいと思います。
これが std::vector の場合、次を使用します。
または、ある種のイテレータかもしれません。
マルチアレイの次元の数値を取得するにはどうすればよいですか?
マルチアレイを反復処理するにはどうすればよいですか?
ありがとう!
c++ - Boost.MultiArrayの2Dビューを引数として関数に取り込む方法は?
の3D配列がありdouble
ます。2Dスライスを印刷するためのシンプルでジェネリックな関数を書きたいです。
コード:
GCCでは、これによりエラーメッセージが生成されます。
なぜエラーですか?
なぜそう思われないM
のですboost::multi_array_ref<double, 3u>
か?
動作するプロトタイプを作成するにはどうすればよいですか?
c++ - const boost::multi_arrayから特定の要素を取得する方法
const boost::multi_arrayオブジェクトから要素を読み取る方法を知りたいです。実際、私の知る限り、演算子[]は割り当てにも使用されるため、使用できません。
私は3D次元配列を持っています。では、myArrayがconstの場合、どのようにして要素myArray [i][j][k]を取得するのでしょうか。
前もって感謝します。
c++ - boost multi_array resize が VS2008 でコンパイルされない
この最小限のコードは、VS2008 およびブースト 1.49 ではコンパイルできません。
この回答を見ましたが、役に立たないようです。どんな援助にも感謝します。
非常に詳細なエラー メッセージを以下に示します。
c++ - boost::multi_array でストライドをバイト単位で表現する
short として読み取られた 2 次元のネイティブ C 配列があり、boost::multi_array_ref
その一部に a をマップしたいのですが、これを float として表現します。ストライドを (データ サイズの倍数ではなく) バイト単位で設定する方法はありますか?
c++ - 変数によってboost::MultiArrayからNxMサブマトリックスを選択する
複数の NxM マトリックスがあり、そのうちの 1 つを変数で選択したいと考えています。私の最善の推測は、使用boost::MultiArray
して NxMxP マトリックスを作成し、3 番目の次元で選択することでした。
array_view を使用して実装しました。
残念ながら、このマトリックスを使用してコードを続行したいのですが、boost::matrix
方法がわかりません。キャストのようなことはできますか?
それとも、multi_array がなくても可能ですか? 他の方法で変数を介してマトリックスを選択できますか?