Witam.
Uczę się C++ z książki Praty i mam pytanie dotyczące stosowania kontenera vector do tworzenia tablic dynamicznych, jako alternatywy dla mechanizmu New i Delete
Załóżmy że mam taki program (akurat tutaj jest jako funkcja):
void tablica(void)
{
int n;
cout<<"Podaj, jak duza chcesz zrobic tablice wartosci typu int: "<<endl;
cin>>n;
vector<int> tab(n);
cout<<"Tablica ma "<<n<<" elementow.\nZapelnij tablice wartosciami, a ja je wyswietle:\n"<<endl;
int i1=0;
while(i1<n)
{
cout<<"Element ["<<i1<<"] = ";
cin>>tab[i1];
cout<<endl;
i1++;
} i1=0;
cout<<"\nPodales wszystkie wartosci. Teraz je wypisze:\n"<<endl;
while(i1<n)
{
cout<<"Element ["<<i1<<"] = "<<tab[i1]<<endl;
i1++;
} i1=0;
//jak zwolnic teraz pamiec?
}
Gdybym zamiast vector użył nst. instrukcji:
int * tab = new int [n]
to potem musiałbym zwolnić pamięć za pomocą
delete [] tab;
A jak zwolnić pamięć, jeżeli użyję vectora?
I jeszcze jedno: mówiąc o vectorze używałem słowa "kontener na dane", a można też o tym mówić, że jest to klasa?
edit: czyżby slużyło do tego polecenie .clear()? np:
tab.clear();