Es ist in dieser Übung nicht verlangt einen eigenen Container
zu schreiben. Eine verkettete Liste ist fehleranfällig und
mittels eines C-Arrays wird eine künstliche Grenze gezogen
(wenn dieses nicht dynamisch erweiterbar gemacht wird).

In C++ gibt es schon viele Container die sich in den wichtigsten
Funktionen genau gleich verhalten. Siehe Seite 354 im Buch.

Eine kurze Einführung in vector (Vorteil: Random Access möglich).

CSong sei das zu verwaltende Lied.

#include 
using namespace std;

vector  lieder; // vektor für CSongs
lieder.push_back (new CSong("Lied1")); // element hinzu
lieder.push_back (new CSong("Lied3"));
lieder.push_back (new CSong("Lied1"));

for (size_t i=0; i< lieder.size(); i++)
{
	lieder[i]; // ungeprüfter zugriff, schreibend und lesend
}

lieder.at(4); // geprüfter zugriff, löst out_of_range exception aus

Am Ende des Programmes müssen natürlich alle Lieder mit delete wieder
gelöscht werden. Mit einem lieder.clear(); werden dann auch die
Zeiger freigegeben.

vector kann natürlich noch wesentlich mehr, aber nur mit diesen
wenigen Operatoren hat man schon ein beliebig wachsendes Array.
Fr Jul 30 13:54:24 CEST 2021
patent_button.gif valid-html401.png elektra.jpg fsfe-logo.png valid-css.png vim.gif anybrowser.gif