probleme beim schreiben in einen verschachtelten vektor



  • hallo,

    ich habe ein problem mit einem verschachtelten vektor, in dem ich double-werte speichern möchte, die ich aus einer Distanzmatrix (zweidimensional,(distanceMatrix)) beziehe.

    Und zwar bekomme ich nur Nullen wenn ich den Vektor (DistMatrix) ausgebe.

    was kann hier schiefgelaufen sein?!
    bin Euch dankbar für hilfe!

    hier die codeschnipsel:

    .
    .
    /*-----Globale Variablen------*/
    unsigned int numberVehicles;	/*unsigned = vorzeichenlos*/
    unsigned int numberCustomers;	/*unsigned = vorzeichenlos*/
    double **distanceMatrix;		/*dyn. Feld Distanzmatrix*/
    vector<vector<double> > DistMatrix(numberCustomers, vector<double>(numberVehicles));
    .
    .
    int main(){
    .
    .
    createDistanceMatrix(); // liest distanzwerte in dyn. feld ein
    CreateCustomerDistanceVectors(); //soll gewisse werte aus dist.matrix speichern
    .
    .
    }
    /*----Funktionen----*/
    .
    .
    void CreateCustomerDistanceVectors(){
    vector<vector<double> > DistMatrix(numberCustomers, vector<double>(numberVehicles));
    
    	for (unsigned int i=0; i<numberCustomers; i++){
    		for (unsigned int j=0; j<numberVehicles; j++){
    		distanceMatrix[numberVehicles+j+1][i] = DistMatrix[i][j];
    		cout << DistMatrix[i][j] << ' ';
    		} cout << '\n';
    	}
    }
    .
    .
    


  • Evtl ist das hier distanceMatrix[numberVehicles+j+1][i] = DistMatrix[i][j]; andersrum gemeint?



  • nein, das passt schon, ich muss zeilen und spalten vertauschen.

    kann es sein, dass der vektor in der funktion richtig befüllt wird, und dann beim aufruf in der main nicht mehr gültig ist? (lokale vs. globale variable??)

    was für ein k(r)ampf... 😡


Anmelden zum Antworten