Załóżmy, że mam std :: vector of structs. Co dzieje się z pamięcią, jeśli wektor jest czysty()?Czy pamięć std :: vector została zwolniona po wyczyszczeniu?
std::vector<myStruct> vecs;
vecs.resize(10000);
vecs.clear();
Czy pamięć zostanie zwolniona lub nadal będzie dołączana do zmiennej vecs jako bufor do wielokrotnego użytku?
Spróbuj wywołać 'pojemność()'. –
Dziękuję wszystkim. Chcę, by pamięć została uwolniona - gwarantowana. Przydzielam więc wektor używając nowego std: vector, a następnie wywołaj delete kiedy skończę. W ten sposób pamięć zostanie uwolniona. –
@AndrewS .: jedynym skutkiem alokacji dynamicznej jest wprowadzenie niewydolności. zobacz odpowiedź jerry'ego na rozsądny sposób na opróżnienie wektora. w ciele pętli innym dobrym sposobem jest po prostu uczynienie wektora lokalnym lokalnym ciałem pętli, tj. zadeklarowanie go w ciele pętli. –