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


Anmelden zum Antworten