Ciao a tutti , ho un compito d´ informatica in cui devo realizzare la push_back della classe vector..

In altre parole io ho una lista di numeri interi separati dalla virgola-( array _list*)

qua ho costruttori e decostruttori del mio programma.
codice:
// ____________________________________________________________________________
ListOfIntegers::ListOfIntegers()
{
_list= NULL;
_size = -1;
}

// ____________________________________________________________________________
ListOfIntegers::~ListOfIntegers()
{
  if (_list != NULL)
  {
  delete[] _list;
  _capacity = _size;
  }
}

la classe push_back
codice:
void ListOfIntegers::push_back(int x)
{
_size = _capacity+1;
_list = new int[_size];

//...................  non riesco a capire come copiare o "rintracciare"i numeri precedenti della lista...
_list [_size] = x;
}
 

______ classe  file.h._________

// Class realizing a list of integers.
class ListOfIntegers
{
  public:
  // Constructor.
  ListOfIntegers();

  // Destructor.
  ~ListOfIntegers();

int getElement(int i);
int getSize(void);
int pop_back(void);
void push_back( int x);

void printListOfIntegers(const char* prefix);

void parseListOfIntegers(const char* listAsString);

void interLeaveListOfIntegers(ListOfIntegers* _list1, ListOfIntegers* _list2);
  private:
  int* _list;
  int _size;
  int _capacity;
};
Secondo l´esercizio devo realizzare i due metodi pop und push_back con la l´aiuto della variabile _capacity.
_list é l´array dove sono presenti i numeri.

Io credo che la grandezza _size della lista attraverso il deconstruttore riesco a trovarla , quello che non riesco a fare come ho giä scritto é a rintracciare i diversi numeri della lista...
Un´altra domanda perché se scrivo questo codice non viene letto il valore di x nella cella _size?
codice:
void ListOfIntegers::push_back(int x)
{
_size = _capacity+1;
_list = new int[_size];
_list[_size] = x;
}
// Mentre se scrivo cosí implicito funziona? (supponendo che la lista precedente aveva grandezza 3)

void ListOfIntegers::push_back(int x)
{
_size = _capacity+1;
_list = new int[_size];
_list[4] = x;
}