0
私はいくつかのVBAコードをC++に変換する必要がありますが、問題はアルゴリズムが非常に特殊で、最大15次元の行列を使用しているため、boost_arrayを使用することにしました。 私の問題は、VBAではランタイム時にディメンションを変更することができ、私はboostマルチアレイでもそれを行うことができるのだろうかと思います。ブーストmulti_arrayライブラリ
歓声
私はいくつかのVBAコードをC++に変換する必要がありますが、問題はアルゴリズムが非常に特殊で、最大15次元の行列を使用しているため、boost_arrayを使用することにしました。 私の問題は、VBAではランタイム時にディメンションを変更することができ、私はboostマルチアレイでもそれを行うことができるのだろうかと思います。ブーストmulti_arrayライブラリ
歓声
実行時に各次元の程度(大きさ)を変更することができるではなく、変数の次元数:
typedef boost::multi_array<double, 3> array_type;
// Create a 2x4x5 array
array_type array3(boost::extents[2][4][5]);
// Reshape (no copy) - The total number of elements must remain the same
boost::array<array_type::index, 3> new_dims{{5, 4, 2}};
array3.reshape(new_dims);
// Resize, keeping currently stored elements by copying them
array3.resize(boost::extents[8][10][5]);
// Create a new array
array3 = array_type(boost::extents[7][6][8]);
次元数以来は、テンプレートのパラメータでありますboost::multi_array
では、実行時に変更することはできません。
実行時に次元数を変更することはできますが、数値は変更することはできません。 – Holt