Coder Social home page Coder Social logo

lab3's Introduction

#Lab 3 - Kontenery i adaptery

Zadania

Na dzisiejszy kod początkowy składa się klasa Slav i częściowo uzupełniony już plik main.cpp. Klasa Slav opisuje abstrakcję Słowianina/Słowianki, w konstruktorze domyślnym przypisując mu imię (dostępne za pośrednictwem funkcji name()) i unikalny numer identyfikacyjny (id()). Ma ona również funkcję description(), która pozwoli nam łatwo wykorzystywać cout do wyświetlania informacji o obiektach tej klasy.

Funkcja main() pobiera z wiersza poleceń liczbę n i tworzy dynamiczną n * 2 elementową tablicę obiektów klasy Slav. Czyli po prostu parzystą liczbę Słowian.

Państwa zadaniem będzie użycie utworzonych w ten sposób obiektów do zaludniania poszczególnych kontenerów i adapterów. Są one już zadeklarowane, na początku funkcji containers() i adapters(). Proszę zwrócić uwagę, że w każdym z nich przechowujemy jedynie wskaźniki na obiekty, a nie ich kopie. I właśnie na wskaźnikach będziemy operować.

Po każdej zadanej operacji (w komentarzach są wprost zaznaczone miejsca, w których należy je implementować) wywołujemy makra do raportowania liczby elementów w każdym z kontenerów i liczby obiektów klasy Slav, rezydujących w pamięci. Efekt ich pracy wygląda jak poniżej.

[vector_size = 0, set_size = 0, map_size = 0, existingSlavs = 6]

Aby zadanie było wykonane poprawnie, ostatnia z wartości (existingSlavs) nie może zmienić się przez cały czas pracy programu, a makro to pozwala Państwu na łatwą weryfikację tego, czy kolejny krok implementacji został wykonany dobrze.

Powodzenia!

Zadanie na 3

Wewnątrz funkcji containers():

  • Umieść Słowian w losowej kolejności w wektorze,
  • Wykorzystując iterator i funkcję description(), wyświetl wszystkich Słowian w wektorze,
  • Przenieś wszystkich Słowian z wektoru do zbioru,
  • Stwórz słownik tworzący pary Słowian, z tych znajdujących się w zbiorze, czyszcząc zbiór,
  • Wykorzystując iterator, wyświetl wszystkie pary Słowian.

Zadanie na 4

Wewnątrz funkcji adapters():

  • Umieść Słowian w kolejce.
  • Przenieś Słowian z kolejki do stosu.
  • Wyświetl Słowian zdejmowanych ze stosu.

Zadanie na 5

Uzupełnij klasę Slav o metodę rozpoznającą płeć Słowianina/Słowianki, zwracając ją jako enum. Stwórz słownik (map) zwracający tablicę (vector) wskaźników na wszystkich mężczyzn, gdy podamy mu klucz odpowiadający mężczyźnie i tablicę wszystkich kobiet, gdy podamy mu klucz odpowiadający kobiecie.

Zadanie na 5.5

Wyjaśnij, co dzieje się w 21 linijce pliku Slav.cpp. Jak nazywa się ten proces?

Dokumentacja

lab3's People

Contributors

xehivs avatar mergal avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.