Giả sử tôi có một std :: vectơ của cấu trúc. Điều gì sẽ xảy ra với bộ nhớ nếu véc tơ là rõ ràng() 'd?Là std :: bộ nhớ vector được giải phóng khi rõ ràng?
std::vector<myStruct> vecs;
vecs.resize(10000);
vecs.clear();
Bộ nhớ có được giải phóng hoặc vẫn được gắn với biến vecs làm bộ đệm có thể sử dụng lại không?
Thử gọi 'capacity()'. –
Cảm ơn mọi người. Tôi muốn bộ nhớ được giải thoát - được bảo đảm. Vì vậy, tôi phân bổ véc tơ bằng cách sử dụng std mới: vector, sau đó gọi xóa khi tôi hoàn tất. Do đó bộ nhớ được đảm bảo sẽ được giải phóng. –
@AndrewS .: tác động duy nhất của phân bổ động là giới thiệu một sự thiếu hiệu quả. xem câu trả lời của jerry cho một cách hợp lý để trống một vector. trong cơ thể vòng lặp, một cách tốt khác là chỉ cần tạo vectơ cục bộ cho thân vòng lặp, tức là khai báo nó bên trong thân vòng lặp. –