durch verschachtelte vektoren durchiterieren
-
Hallo.
Sowas kommt bei mir oft vor:
for(int x=0;x<m_grid.size();++x) { for(int y=0;y<m_grid[x].size();++y) { for(int i=0;i<m_grid[x][y].size();++i) { m_grid[x][y][i]->Render(); } } }Gibts da ne elegantere Möglichkeit (und eine, die die Finger weniger belastet?)
-
Du könntest eine Funktion schreiben, die einen verschachtelten Vektor und einen Funktionszeiger als Parameter nimmt und dann macht, was du willst.
Jedoch sind Zeiger auf Memberfunktionen kein triviales Thema, da muss man sich schon ein bisschen einarbeiten, um das zu verstehen.
Das entspräche dann der Funktion std::for_each, nur halt für verschachtelte Vektoren.
-
Es gäbe auch noch boost::foreach. Das ist imo ein wenig besser, als
std::for_each, weil es eher das ist, was man erwartet. Ist schlussendlich natürlich das gleiche in einem Makro verpackt, erhöt die Lesbarkeit aber enorm. Allerdings lohnt es sich dafür boost nicht wirklich zu installieren. Aber wenn man boost sowieso benutzt, dann kann man auch das benutzen.