Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class WektorInt
- {
- int* tablica;
- unsigned rozmiar;
- public:
- WektorInt();
- explicit WektorInt(unsigned);
- WektorInt(unsigned, int);
- ~WektorInt();
- int get_value(unsigned) const;
- void set_value(unsigned, int);
- void dodaj_na_koniec(int);
- unsigned size() const;
- };
- WektorInt::WektorInt() : tablica(nullptr), rozmiar(0)
- {
- // tworzymy pusty wektor
- }
- WektorInt::WektorInt(unsigned n) : rozmiar(n), tablica(new int[n])
- {
- // tworzymy wektor o podanym rozmiarze
- }
- WektorInt::WektorInt(unsigned n, int wartosc) : rozmiar(n), tablica(new int[n])
- {
- for(unsigned i = 0; i < n; ++i)
- tablica[i] = wartosc;
- }
- WektorInt::~WektorInt()
- {
- if(tablica)
- delete[] tablica;
- cout << "Wektor zostal usuniety\n";
- }
- int WektorInt::get_value(unsigned pozycja) const
- {
- if(pozycja < rozmiar)
- return tablica[pozycja];
- return 0;
- }
- void WektorInt::set_value(unsigned pozycja, int wartosc)
- {
- if(pozycja < rozmiar)
- tablica[pozycja] = wartosc;
- }
- unsigned WektorInt::size() const
- {
- return rozmiar;
- }
- void WektorInt::dodaj_na_koniec(int wartosc)
- {
- if(tablica == nullptr)
- {
- tablica = new int[1];
- tablica[0] = wartosc;
- rozmiar = 1;
- }
- else
- {
- // 1. tworzymy tablicę tymczasową
- int* temp = new int[rozmiar];
- // 2. kopiujemy do tablicy tymczasowej całą dotychczasową zawartość
- for(unsigned i = 0; i < rozmiar; ++i)
- temp[i] = tablica[i];
- // 3. zwalniamy pamięć z dotychczasowej tablicy
- delete[] tablica;
- // 4. tworzymy nową tablicę, o rozmiarze większym o 1
- tablica = new int[rozmiar + 1];
- // 5. przenosimy zawartość tablicy tymczasowej do nowej
- for(unsigned i = 0; i < rozmiar; ++i)
- tablica[i] = temp[i];
- // 6. zwalniamy pamięć z tablicy tymczasowej
- delete[] temp;
- // 7. zwiększamy rozmiar o 1
- ++rozmiar;
- // 8. na ostatni element wstawiamy nową wartość
- tablica[rozmiar - 1] = wartosc;
- }
- }
- int main()
- {
- WektorInt wektor(6, 3);
- wektor.set_value(2, 10);
- unsigned n = wektor.size();
- for(unsigned i = 0; i < n; ++i)
- cout << wektor.get_value(i) << '\t';
- cout << endl;
- wektor.dodaj_na_koniec(50);
- n = wektor.size();
- for(unsigned i = 0; i < n; ++i)
- cout << wektor.get_value(i) << '\t';
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment