Hola:
Me podeis exar una mano, sobre que diferencia hay entre estas dos implementaciones en la misma funcion. No para de darle vueltas.. y no lo se, yo crei q eran iguales ...y creo.
La cosa es que en la primera implementacion no me funciona correctamente como contructora de la clase y no se porq.... y la segunda si...
Yo quiero realizarlo mas al estilo de la primera implementacion...o esque no se peude?
Poravor una explicacion...un saludo y gracias. Pd: ¿Hay algo q no este haciendo bien en la primera?
1º Implementacion:
tablero::tablero(const pair<unsigned int,unsigned int>& par, const list<char>& bloques){
_tam=par; // _tam esta en la parte privada
list <char>::const_iterator il=bloques.begin();
pair <unsigned int, unsigned int> aux;
_matriz.reserve(_tam.first); //_matriz esta en la parte privada es un----> vector< vector<char> > _matriz;
for(unsigned int i=0;(i<_tam.first);i++){
_matriz[i].reserve(_tam.second);
}
for(unsigned int i=0;(i<_tam.first);i++){
for(unsigned int j=0;(j<_tam.second);j++){
_matriz[i][j]=*il;
il++;
}
}
}
2ºImplemetancion:
tablero::tablero(const pair<unsigned int,unsigned int>& par, const list<char>& bloques){
if(bloques.size()>0){
_tam=par;
for(unsigned int i=0;i<_tam.first;++i)
_matriz.push_back(vector<char>());
vector<vector<char> >::iterator it_fila=_matriz.begin();
list<char>::const_iterator it_bloques=bloques.begin();
for(unsigned int j=0;j<_tam.first;++j){
for(unsigned int j=0;j<_tam.second;++j){
it_fila->push_back(*it_bloques);
it_bloques++;
}
it_fila++;
}
}
}