を印刷します。
#include <iostream>
#include <vector>
using std::vector;
int main()
{
vector<vector<int> > k{{1,2}, {1,2}, {1,2}};
vector<vector<vector<int> > > k3;
for(int i = 0; i < 4; ++i)
k3.push_back(k);
// Think of a 3D vector as an array made of K matrices N x M ...
// This will work if the 3D vector is made out of 2D matrix of same dimensions..
int K = k3.size(); // number of matrices
int N = k3[0].size(); // number of rows for each matrix
int M = k3[0][0].size(); // number of lines for each matrix
std::cout << " k = " << K << " n = " << N << " m = " << M << std::endl;
return 0;
}
C++の外にステップします。私は言いましょう:3Dベクトルは次のようなものです:struct vect3d {float x、y、z; };あなたは2次元マトリックスの配列にもっと近いものを持っていますが、正しく定義されていません。あなたは行と列を話しているので、私の仮定は正しいと思います。実際、あなたが "2dベクトル"(実際に行列ですか?)と呼ばれるものであっても、なぜこの "モンスター"が必要なのかを明らかにする必要があるという事実に加えて、ベクトル<ベクトル>の定義は、の列はmyVector [0] .size()です。すべての "列"(あなたの用語を使用しています)は異なるサイズにすることができます。 –
私はクラスタリング分析を実行したいので、各クラスタは行列を表しますが、必ずしも同じ次元ではないので集合的にそれらのクラスターの集合を参照するには、それらを格納するためにベクトル<ベクトル<ベクトル< double>>行列 –
私はまだstd :: vectorに依存するかもしれない行列クラスを作成しますが、少なくとも、固定ディメンション(一度作成されたもの)であると思われるものへの誤ったアクセスを避けるために、それらへのアクセスを制御できます。ベクトルのベクトルのプレーンベクトルは、問題の原因にすぎません。私はそれを避けるようにします。これが役立つことを願っています。行列の型をとった後、ベクトルは私にはうまく聞こえます –