最良の方法このスレッドは、c + +約多次元配列です。ダブル多次元配列、
私はいくつかのコードをc#からcppに移植する必要があります。私はこのようなコードを持っている:私は、配列の平野double配列を使用することを考えている
private double[,] B;
...
this.B = new double[states, symbols];
double[][, ,] epsilon = new double[N][, ,];
double[][,] gamma = new double[N][,];
...
s += gamma[i][t, k] = ...
を、それは非常に苦痛です。別の解決策は、二重のベクトルのベクトル、またはカスタムMatrix2DとのMatrix3Dクラスだろうか?
それぞれの場合にはどのような方法が最適ですか?私が学んだこと
:C++の中
多次元配列は偉大なトピックで、インターネットは資源がいっぱいです。さまざまな方法で処理することができます。そのうちのいくつかは本当に扱いにくく、他のいくつかはより速く書くことができます。
私はそれに対処することで最良の方法は、アカウントにこのトピックを取り、いくつかのライブラリを使用することであると思います。それらの多くがあります:Armadillo(素敵なMATLABの構文変換)、Eigen私はより良い1つ、インストールしやすい、使いやすい、強力だと思います。 Boost::multi_arrayは別のもので、Boostは本当に有名なlibであり、トピックをどのように処理するかを見るだけで重要です。 Konrad Rudolph answerSTD with nested vectorsまたはthisは、別の解決策になる可能性がありますが、少し検索した後、私はあまりエレガントさえせずに、コードをより簡単かつ迅速に外部LIBSを考えています。
は、カスタムクラスを記述します。それは良い運動かもしれません。 peter answerまたはthisまたはthisは良いスタート地点であり、またthis post面白いですが、expeciallyこのgreat post blog from martin moene(私は今日読んだこのトピックで最高のエッセイの1つ)。私はsparse arrayのこの答えにも言及します。ここ
はStroustrup氏
から直接nice tutorialである私は、動的配列言う
最後に、私は使用しているフレームワークに既に組み込まれていたので、私はブーストを使用しました! – nkint