Trong hashmap Java:Trong unordered_map của C++ 11, làm thế nào để cập nhật giá trị của một khóa cụ thể?
map.put(key, new_value)
sẽ cập nhật sự xâm nhập của key = quan trọng với new_value nếu nó tồn tại trong hashmap.
Cách chính xác để thực hiện điều tương tự trong unordered_map của C++ 11 là gì?
Tôi chưa tìm thấy API như updateXXX và tài liệu cho biết hàm unordered_map :: insert sẽ chỉ thành công khi không có bất kỳ cặp nào như vậy với khóa.
Hoặc 'std :: unordered_map :: at'. Nó sẽ ném ngoại lệ 'std :: out_of_range', nếu phần tử có' khóa' được chỉ định không tồn tại. – soon
Cảm ơn! Tôi đã sử dụng 'unordered_map :: const_iterator it = map.find (key)' và tôi gặp lỗi khi cố gắng gán 'new_value' cho' it-> second'. 'auto' hoạt động hoàn hảo. Tôi cần tìm hiểu thêm về C++ .. – Faraway
@Yeclipse Đó là bởi vì bạn đang sử dụng 'const_iterator' - điều này có nghĩa là những gì mà trình vòng lặp" trỏ tới "là' const' (nghĩa là, nó không thể thay đổi được). Sửa đổi nó thành 'unordered_map :: iterator it = map.find (key)' và nó sẽ hoạt động - đây là những gì 'auto' được suy ra nó như là. – Yuushi