Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/03/2013, 01:56
reethok
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Violación de segmento usando deque

Código C++:
Ver original
  1. #include <deque>
  2. using std::deque;
  3.  
  4. #include <iostream>
  5. using std::cout;
  6. using std::endl;
  7.  
  8. int main()
  9. {
  10.     deque<unsigned short> number;
  11.     deque<unsigned short>::iterator it;
  12.     int remainder = 0;
  13.     int temp;
  14.  
  15.     number.push_back(1);
  16.  
  17.     for(int i = 2; i <= 100; i++)
  18.     {
  19.         it = number.end();
  20.  
  21.         while(it != number.begin())
  22.         {
  23.             temp = ( (*it--) * i) + remainder; // OCURRE AQUÍ
  24.             if(i == 100)
  25.                 number.push_front(temp);
  26.             else
  27.             {
  28.                 remainder = temp % 10;
  29.                 number.push_front(temp);
  30.             }
  31.  
  32.         }
  33.     }
  34.  
  35.     it = number.begin();
  36.  
  37.     while(it != number.end())
  38.         cout << *it++;
  39.  
  40.     return 0;
  41.  
  42. }

Marqué dónde ocurre la violación de segmento, además, sé que el loop se ejecuta varias veces, y al final entra en una violación de segmento y no entiendo por qué...

¿Alguien me podría explicar/ayudar?

Saludos!