payen | Alors, j'ai une solution, mais recursive ... Le probleme, c'est, evidemment, que j'ai parfois tendance a exploser la memoire, et niveau rapidite, c'est pas top. Je la donne :
PILE <T> est une classe derivee de std::vector ...
Code :
- bool EnumAllPos(int raw, const PILE < PILE <int> > &app, PILE <int> &pile, PILE < PILE <int> > &result)
- {
- if( raw == app.size() )
- {
- result << pile;
- return true;
- }
- int i;
- for(i=0;i<app(raw).size();i++)
- {
- pile(row) = app(raw)(i);
- EnumAllPos(raw+1,app,pile,result);
- }
- }
|
Avec l'appel :
Code :
- EnumAllPos(0,app(i),pile_temp,all_pos);
|
Donc, si vous voyez un moyen pour transformer cette petite chose en algo iteratif, ca m'interesserait au plus haut point ...
Merci d'avance ... |