C++ for Schleife durch zweidimensionalen Vector?
Hey, ich habe einen std::vector A und möchte durch den zweiten Teilvector iterieren (also zB über A[x][0], A[x][1], ...), allerdings ist es immer unterschiedlich, wie viele Elemente dieser zweite Vector hat. Also A[x] hat zB 4 weitere Vectors und A[y] beispielsweise nur 1.
Wie iteriere ich denn über solche Vectors in C++?
3 Antworten
![](https://images.gutefrage.net/media/user/Klawutzel/1637268402529_nmmslarge__0_0_242_243_3042c4944d04ab5139452bb96183eec9.jpg?v=1637268403000)
Vectoren unterstützten die Range-based for loop.
Die solltest du unbedingt einsetzen.
![](https://images.gutefrage.net/media/user/FaTech/1708715131049_nmmslarge__0_0_500_500_77a0f43d5804c908f40c8a1b0c260400.png?v=1708715131000)
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren
Meinst du sowas?
for(int i = 0; i < vector.size(); i++)
for(int j = 0; j < vector[j].size(); j++)
...vector[i][j]...
![](https://images.gutefrage.net/media/default/user/14_nmmslarge.png?v=1551279448000)
Mach es nicht wie in C, sondern wie in C++:
for (const auto & sub : vec) {
for (const auto & elem : sub) {
// Use elem here ...
}
}
Das dürfte die eleganteste Methode sein.
Woher ich das weiß:Berufserfahrung
Da solltest du aber ein paar mal "i" durch "j" ersetzen. ^^