3 dimensionaler vector
-
nabend,
wie kann ich einen 3 dimensionalen vector definieren? bei 2 dimensionen weiss ich noch selber wies geht;-)
2 dimensional:
std::vector<std::vector<int> > vec1;
wie definiert man nun ne 3 dim. vector? geht das auch das die dim1 int, dim2 bool und dim3 pointer auf objekte einer klasse speichert?
ok dann tschüss...+thx
-
3D geht wie 2D, also
vector <vector <vector <int> > > My3DVector;
geht das auch das die dim1 int, dim2 bool und dim3 pointer auf objekte einer klasse speichert?
Dafür kannst du ja sowas schreiben:
struct Dimensions { int D1; bool D2; Foo D3; } vector<Dimensions> My3DVector;
-
oh danke an structur hab ich nicht mal gedacht;-)
aber trotzdem wie würde das mit nem 3 dim. vector aussehen?
cu
-
Persöhnlich bevorzuge ich:
size_t x_length, y_length, z_length; vector<int>vec(x_length*y_length*z_length); vec[x + y*x_length + z*x_length*y_length] = 7;
-
hab nen error:
vector<Dimensions > My3DVector;
error C2926: 'main::Dimensions' : types with no linkage cannot be used as template arguments
cu
-
Ähm, so geht das auch nicht. Du müsstest dein eigenes vector template machen und dann dimensions als klasse übernehmen und die member static machen...
-
doch;-)
hab mal die struct ausserhalb der int main definiert;-) hab ich zuerst nicht mal bemerkt;-)pseudocode:
class foo { }; struct Dimensions { string username; string userid; bool dlg_open; foo *ptr; }; int main() { vector<Dimensions> My3DVector; Dimensions dim; dim.ptr = new foo; My3DVector.push_back(dim); return 0; }
cu