Về cơ bản không có. Các phần tử trong vectơ được xây dựng mặc định khi thay đổi kích thước (cho một số nguyên kết quả là 0).
Giả sử bạn đang sử dụng dự trữ() để đảm bảo rằng thay đổi kích thước() không cấp phát bộ nhớ, tôi sẽ không lo lắng về điều này trừ khi nó chứng tỏ là vấn đề hiệu suất sau này.
Nếu bạn quan tâm, bạn có thể muốn xem xét chỉ sử dụng một mảng thông thường và lưu trữ số mục trong một biến riêng biệt. Điều này sẽ cung cấp cho bạn hiệu suất tốt nhất.
Cập nhật:
John hỏi:
là các nhà xây dựng thực sự đảm bảo về không nhớ đó? Tôi nghĩ rằng không xác định?
Có và không. Các kiểu nguyên thủy (int, bool, float, vv) có các hàm tạo mặc định khởi tạo chúng bằng không. Tuy nhiên không giống như các lớp thông thường hoặc cấu trúc trình biên dịch không tự động gọi chúng.
ví dụ
int a; // uninitialized
int b = int(); // initialized to 0
Vì vector :: thay đổi kích thước sử dụng các hình thức sau khi thêm các mục mà bạn được đảm bảo rằng các yếu tố tạo ra sẽ được khởi tạo một cách chính xác không. Điều này đúng với tất cả các bộ sưu tập STL mà tạo ra các phần tử ngầm định.
Nguồn
2009-03-03 19:59:17
Xin lỗi, tôi không hiểu vấn đề của bạn - bạn có thể đăng một số mã mẫu không? –