Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "kolejka.hpp"
- #include <iostream>
- kolejka::kolejka(int poj)
- :pojemnosc{poj}, pocz{0}, ile{0}
- {
- kol = new string[pojemnosc];
- }
- kolejka::kolejka()
- :kolejka(1) {};
- kolejka::kolejka(kolejka&& kolejka1)
- {
- pojemnosc = kolejka1.pojemnosc;
- pocz = kolejka1.pocz;
- ile = kolejka1.ile;
- kol = kolejka1.kol;
- kolejka1.kol = nullptr;
- }
- kolejka::kolejka(initializer_list<string> lista)
- {
- pojemnosc = lista.size();
- pocz = 0;
- ile = lista.size();
- kol = new string[pojemnosc];
- int temp = 0;
- for(auto it = lista.begin(); it != lista.end(); ++it, ++temp)
- {
- kol[temp] = *it;
- }
- }
- kolejka::kolejka(const kolejka& kolejka1)
- {
- pojemnosc = kolejka1.pojemnosc;
- pocz = kolejka1.pocz;
- ile = kolejka1.ile;
- kol = new string[pojemnosc];
- for(int i = 0; i < ile; ++i)
- {
- kol[(i + pocz) % pojemnosc] = kolejka1.kol[(i + pocz) % pojemnosc];
- }
- }
- kolejka::~kolejka()
- {
- if(kol != nullptr)delete[] kol;
- }
- int kolejka::rozmiar()
- {
- return ile;
- }
- string kolejka::wyciagnij()
- {
- if(!ile)return kol[pocz];
- int prev = pocz;
- pocz = (pocz + 1) % pojemnosc;
- --ile;
- return kol[prev];
- }
- string kolejka::sprawdz()
- {
- return kol[pocz];
- }
- void kolejka::wloz(const string& str)
- {
- int ni = (pocz + ile) % pojemnosc;
- kol[ni] = str;
- ++ile;
- }
- kolejka& kolejka::operator= (const kolejka& kolejka1)
- {
- if(this == &kolejka1)return *this;
- pojemnosc = kolejka1.pojemnosc;
- pocz = kolejka1.pocz;
- ile = kolejka1.ile;
- kol = new string[pojemnosc];
- for(int i = 0; i < ile; ++i)
- {
- kol[(i + pocz) % pojemnosc] = kolejka1.kol[(i + pocz) % pojemnosc];
- }
- return *this;
- }
- kolejka& kolejka::operator= (kolejka&& kolejka1)
- {
- pojemnosc = kolejka1.pojemnosc;
- pocz = kolejka1.pocz;
- ile = kolejka1.ile;
- kol = kolejka1.kol;
- kolejka1.kol = nullptr;
- return *this;
- }
- #pragma once
- #include <string>
- using namespace std;
- class kolejka
- {
- private:
- int pojemnosc;
- int pocz;
- int ile;
- string* kol;
- public:
- kolejka();
- kolejka(int poj);
- kolejka(kolejka&& kolejka1);
- kolejka(const kolejka& kolejka1);
- kolejka(initializer_list<string> lista);
- ~kolejka();
- int rozmiar();
- string wyciagnij();
- string sprawdz();
- void wloz(const string& str);
- kolejka& operator= (const kolejka& kolejka1);
- kolejka& operator= (kolejka&& kolejka1);
- };
- #include <iostream>
- #include "kolejka.hpp"
- using namespace std;
- int main()
- {
- int i = 1;
- kolejka* kol = new kolejka({"a", "bc", "de"});
- (*kol) = (*kol);
- while(i)
- {
- cout << "Wpisz znak odpowiadajacy temu co chcesz zrobic:\n";
- cout << "1 - sprawdzenie rozmiaru kolejki\n";
- cout << "2 - wlozenie napisu do kolejki\n";
- cout << "3 - wyciagniecie napisu z kolejki\n";
- cout << "4 - sprawdzenie jaki napis jest na poczatku kolejki\n";
- cout << "q - wyjscie\n\n";
- char a;
- cin >> a;
- switch(a)
- {
- case '1':
- {
- cout << "Rozmiar kolejki to: " << kol->rozmiar() << "\n\n";
- break;
- }
- case '2':
- {
- string t;
- cin >> t;
- kol->wloz(t);
- cout << "\n";
- break;
- }
- case '3':
- {
- cout << "Wyjety napis to: " << kol->wyciagnij() << "\n\n";
- break;
- }
- case '4':
- {
- cout << "Na poczatku kolejki jest napis: " << kol->sprawdz() << "\n\n";
- break;
- }
- case 'q':
- {
- i = 0;
- break;
- }
- default:
- {
- cout << "Nieprawidlowe polecenie\n\n";
- break;
- }
- }
- }
- delete kol;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement