const boost::multi_arrayオブジェクトから要素を読み取る方法を知りたいです。実際、私の知る限り、演算子[]は割り当てにも使用されるため、使用できません。
私は3D次元配列を持っています。では、myArrayがconstの場合、どのようにして要素myArray [i][j][k]を取得するのでしょうか。
前もって感謝します。
const boost::multi_arrayオブジェクトから要素を読み取る方法を知りたいです。実際、私の知る限り、演算子[]は割り当てにも使用されるため、使用できません。
私は3D次元配列を持っています。では、myArrayがconstの場合、どのようにして要素myArray [i][j][k]を取得するのでしょうか。
前もって感謝します。
juanchopanzaの回答の代わりに、boost::arrayからビルドされたインデックス配列を介して要素にアクセスすることもできます。
typedef boost::multi_array<double,3>::index tIndex;
typedef boost::array<tIndex, 3> tIndexArray;
tIndexArray index = {{ 1,2,3 }};
const double x = myArray( index );
あなたに要素を与えるでしょうmyArray[1][2][3]
。次元に依存しないコードを記述している場合、この表記は[]演算子を明示的に使用するよりも役立つ場合があります。
値またはconst参照で読み取ることができます。配列がタイプTの要素を保持していると仮定します。
T x = myArray[1][2][3];
const T& y = myArray[1][2][3];
multi_arrayの要素へのポインターが必要な場合、ポインターはconstである必要があります。
const T* y = &myArray[1][2][3];