Tôi có một mã nơi tôi thường điền vào một vectơ có từ 0 đến 5000 phần tử. Tôi biết tối đa không vượt quá 5000. Thay vì khởi tạo vector nhiều lần, tôi muốn làm chỉ một lầnC++ cách nhanh nhất để xóa hoặc xóa một vector
vector<struct> myvector;
myvector.reserve(5000);
Tuy nhiên, để lấp đầy vector một lần nữa, tôi phải rõ ràng vector đầu tiên mà không thay đổi công suất của nó. Vì vậy, thông thường tôi gọi myvector.clear();
Đây là một hoạt động O (n). Có một cái gì đó đơn giản tôi có thể làm để tăng hiệu suất của điều này hoặc là điều này về tốt nhất mà nó sẽ nhận được?
Việc gán cho các thành phần hiện có là một giải pháp hợp lý? –
Không, bởi vì tôi có thể có 5000 yếu tố lần đầu tiên, và 3500 lần sau, và sẽ có 1500 thành phần cũ còn lại ở cuối ... – user788171
Sự "hủy diệt" của các yếu tố có phải là vấn đề không? –