ブーストのMultiArrayには、std::vector を使用してマルチ配列を作成する場合と比較して、多くの利点があります。ただし、BOOST の MultiArray に違和感を覚えるのは、簡単にサイズを変更できるマルチアレイを作成するのが簡単ではないことです。私の主張を明確にするために、次のコードがあります。
vector<vector<int> > my_2d_array;
vector<int> temp;
temp.push_back(3);
temp.push_back(4);
my_2d_array.push_back(temp);
temp.clear;
temp.push_back(4);
temp.push_back(5);
my_2d_array.push_back(temp);
temp.clear;
temp.push_back(41);
temp.push_back(51);
my_2d_array.push_back(temp);
上記のコードからわかるように、vector<vector<int> >
データ構造を使用すると、マルチ配列の次元を非常に簡単に増やすことができます。ただし、boost::multi_array では、使用boost::extents
する前にマルチ配列の次元を決定するために使用する必要があります。vector<vector<int> >
上記のコードで行ったように、boost::multi_array にもその次元を簡単に増やす方法があるかどうか疑問に思っていました。