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
Secondo l´esercizio devo realizzare i due metodi pop und push_back con la l´aiuto della variabile _capacity.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; };
_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; }

Rispondi quotando