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;
}