std::map
có phương thức insert
có trình lặp "gợi ý" sẽ giảm thời gian chèn từ nhật ký (n) sang thời gian không đổi nếu gợi ý là chính xác. Nó khá rõ ràng như thế nào điều này sẽ làm việc, kể từ khi container chỉ có thể chắc chắn rằng mục mới được thêm vào có một phím đó là ít hơn so với gợi ý và có một khóa lớn hơn mục trước khi gợi ý. Nếu không, gợi ý là sai và nó thực hiện chèn bình thường.std :: unordered_map chèn với gợi ý
std::unordered_map
cũng có một số insert
tương tự với chức năng gợi ý. Điều gì, nếu có, gợi ý làm gì? Nó không rõ ràng với tôi như thế nào khác một "gợi ý" iterator có thể được sử dụng để tăng tốc độ chèn một bản đồ băm.
Nếu được sử dụng, gợi ý "thích hợp" là gì. Trong std::map
, gợi ý thường được tìm thấy bằng cách gọi lower_bound
trên bản đồ.
Tôi nghĩ rằng quá tải gợi ý chỉ dành cho giao diện tương thích với 'std :: map' bình thường, vì bạn phải biết chính xác vị trí giá trị băm được chèn vào để làm bất kỳ điều gì hữu ích - có nghĩa là bạn cần phải tính đến tải trọng, các thùng, vv, về cơ bản tái tạo những gì 'unordered_map' thực hiện trong nội bộ. Ngoài ra, như bạn đã lưu ý, chèn được khấu hao O (1) anyways. – Xeo
Vì vậy, để được rõ ràng, bạn đang nói rằng nó không làm bất cứ điều gì? Đó là những gì tôi đã đoán .. đó là chỉ cho khả năng tương thích. – pauld