Spalten einer Matrix
-
ich habe eine matrix (m*n)also mit m Zeilen und n Spalten
std::vector<std::vector<int> > mat;mit mat.size() kann ich schon mal die Anzahl der Zeilen wissen .
wie kann ich rausfinden wieviel spalten hat die matrix?
Danke sehr
-
SAL schrieb:
ich habe eine matrix (m*n)also mit m Zeilen und n Spalten
std::vector<std::vector<int> > mat;mit mat.size() kann ich schon mal die Anzahl der Zeilen wissen .
wie kann ich rausfinden wieviel spalten hat die matrix?
Danke sehrWenn du sie konsistent aufgebaut hast mit:
int spalten = mat[0].size()
dann sollte aber mat[0] existieren.
-
meine matrix wurde so gebaut:
std::vector<int> vec; std::vector<std::vector<int> > mat; mat.push_back(vec);
also es wurden vektoren in die matrix gespeichert.
eine andere problem ist, dass die Vektoren unterschiedlicher Länge(size()) sind.
-
SAL schrieb:
meine matrix wurde so gebaut:
std::vector<int> vec; std::vector<std::vector<int> > mat; mat.push_back(vec);
also es wurden vektoren in die matrix gespeichert.
eine andere problem ist, dass die Vektoren unterschiedlicher Länge(size()) sind.
Dann hast du aber keine nxm Matrix sondern irgendeinen Schmarrn!
sieht's etwa so aus?
1 2 3 4 5 1 3 5 1 4 6 7 8 9 4 6 1 7 1 8 9 0 0
Dann bekommst du mit matrix[i] die i-te Zeile, also mit matrix[i].size() deren Länge und mit matrix[i][j] deren Elemente
-
danke schön Gast221212
das hat mit matrix[i].size() geklappt.
Gast221212 schrieb:Dann hast du aber keine nxm Matrix sondern irgendeinen Schmarrn!
darf man sowas nicht in C++ machen? also ich weiss nicht bin Anfänger
ich habe leider keine andere Idee. ich wäre sehr dankbar wenn du mir eine andere Technik, mit der man Vektoren speichern kann, vorschlägst.
-
SAL schrieb:
ich habe leider keine andere Idee. ich wäre sehr dankbar wenn du mir eine andere Technik, mit der man Vektoren speichern kann, vorschlägst.
Wenn du einen Array von Arrays unterschiedlicher Länge haben willst, ist das schon richtig. Es ist halt nur per Definition KEINE Matrix. Solange du Dir darüber im klaren bist, dass es keine ist, ist alles in Ordnung.
int dim_x = matrix.size(); int dim_y = matrix[0].size();
macht dann natürlich keinen sinn, da matrix[i].size() nicht konstant.