Tôi cần tạo hàm tra cứu trong đó cặp (X, Y) tương ứng với giá trị Z cụ thể. Một trong những yêu cầu chính cho điều này là tôi cần phải làm điều đó trong càng gần với O (1) phức tạp như tôi có thể. Kế hoạch của tôi là sử dụng unordered_map.C++ - unordered_map complexity
Tôi thường không sử dụng bảng băm để tra cứu, vì thời gian tra cứu chưa bao giờ quan trọng đối với tôi. Tôi có đúng trong suy nghĩ rằng miễn là tôi xây dựng unordered_map không có va chạm, thời gian tra cứu của tôi sẽ là O (1)?
Mối quan tâm của tôi sau đó là những gì phức tạp sẽ trở thành nếu có chìa khóa không có trong bản đồ không có thứ tự. Nếu tôi sử dụng unordered_map :: find() :, ví dụ, để xác định xem một khóa có hiện diện trong bảng băm của tôi hay không, nó sẽ cho tôi biết câu trả lời như thế nào? Nó thực sự lặp qua tất cả các phím?
Tôi đánh giá rất cao sự trợ giúp.
bây giờ tôi đang bối rối bởi Jakar của câu trả lời ở đây:. http://stackoverflow.com/questions/4395050/finding-value-in-unordered-map tôi sẽ giải thích nhận xét này có nghĩa là nó Có thể được hoàn thành. Đó có phải là trường hợp không? – user1764386
@ user1764386: Vâng, tìm thấy phải trả lại * cái gì đó * nếu nó không thể trả lại cho bạn một trình lặp cho giá trị của bạn, vì vậy unordered_map :: end là lựa chọn tốt nhất. – AndyG
cảm ơn sự giúp đỡ của bạn. Tôi có nghĩa là tôi hơi bối rối bởi câu trả lời của ông bởi vì tôi giải thích nó có nghĩa là sự phức tạp sẽ tốt hơn O (N) nếu khóa không nằm trong unordered_map. – user1764386