Tôi đã đọc TC++ PL về thành phần raw_storage_iterator. Sử dụng thành phần này, chúng tôi nhận được lợi ích hiệu suất vì nó tránh được việc chuyển nhượng (đắt tiền hơn) và sử dụng xây dựng bản sao. Nó nhìn với tôi rằng nó nên được sử dụng trong trình tự/container, nơi chúng tôi có thể có số lượng đáng kể các yếu tố và do đó số lượng các cuộc gọi chuyển nhượng có thể là tác động lớn.Thành phần raw_storage_iterator sử dụng/lợi thế trong C++
Về mặt lý thuyết, rõ ràng và nó cho tôi thấy rằng thành phần này hữu ích cho các lớp loại vùng chứa. Tuy nhiên tôi muốn hiểu nơi chúng ta nên sử dụng thành phần này (với các ví dụ thực tế) trong chi tiết bit để có được lợi ích hiệu suất của nó?
inb4 "cplusplus.com hút, bạn không dám liên kết với nó"; nó nói ngay tại đó, nó được sử dụng để bạn có thể sử dụng bộ nhớ chưa được khởi tạo làm đích cho các thuật toán. Hiệu suất không được tốt hơn so với một vector dự phòng với một trình lặp lại inserter. Trừ khi bạn đang viết mã mức rất thấp, bạn không cần trình lặp này. – DanielKO
@DanielKO một véc tơ dành riêng với một trình lặp lại inserter lặp lại phải thực hiện kiểm tra kích thước ở mỗi lần chèn. Trình biên dịch tìm ra rằng việc kiểm tra kích thước là không cần thiết là tương đối khó xảy ra. Bạn sẽ nhận được dự đoán chi nhánh tốt trên séc, nhưng nó vẫn sẽ nhỏ hơn văn bản 'raw_storage_iterator'. – Yakk