Steg 4

Mallar (templates) – STL-biblioteket

Mål
Efter Steg 4 kommer du ha inblick i hur funktions- och klassmallar kan användas, för att dra nytta av det stora STL-biblioteket (Standard Template Library) som följer med alla utvecklingsverktyg för C++. Du har även fått kunskap om hur  containerobjekt underlättar en generell användning av STL:s containerklasser. Djupare förståelse för denna funktionalitet får du genom att göra en egen praktisk “container”-tillämpning. En orientering kring lagring, sökning och sortering av data med hjälp av STL:s generiska funktioner har visat tillämpningsområden som stöds av biblioteket, och i detta har också ingått en presentation av bibliotekets iteratorer.

Innehåll
Lektions-materialet i detta sista kurssteg ägnas åt hur C++ kan hjälpa oss att generalisera beteenden, genom att “kapsla in” dem, till stöd för underhåll och återanvändning av programvara. Inkapsling är ett viktigt OO-koncept, som döljer ett objekts faktiska implementation, så att hårda kodmässiga kopplingar mellan klasser undviks. Vi fortsätter med att undersöka hur funktions- och klassmallar hjälper oss hantera våra objekt generellt i ett omslutande “containerobjekt” och bli oberoende av hur denna container är implementerad. Vi tittar sedan närmare på några av STL:s containerklasser och visar hur de samverkar med de generiska algoritmer (funktionsmallar anpassade för containerklasserna) och funktionsobjekt som också ryms i STL.

Avslutningsvis analyserar vi funktionalitet för att söka, lagra och hämta poster i en container, genom några programexempel med vector och map. Sist men inte minst studeras iteratorns roll, samt vilka krav som ställs på STL-bibliotekets iteratorsorter i olika sammanhang.

Teorin finns i kursbokens kapitel 16 (Templates) och kap. 21 (Introducing the Standard Template Library).

Moment och begrepp:

  • Inneslutning – objekt som klassmedlemmar
  • Container-objekt
  • Funktions- och klassmallar
  • Jämförelse mellan några container-klasser
  • Några exempel med vector och map
  • Så använder vi generiska funktioner
  • Generellt och specifikt för iteratorer
  • Att använda funktionsobjekt

Välkommen till CoursePress

en utav Linnéuniversitets lärplattformar. Som inloggad student kan du kommunicera, hålla koll på dina kurser och mycket mer. Du som är gäst kan nå de flesta kurser och dess innehåll utan att logga in.

Läs mer lärplattformar vid Linnéuniversitetet

Studentkonto

För att logga in behöver du ett studentkonto vid Linnéuniversitet.

Läs mer om att hämta ut studentkonto

Inloggning LNU