Làm cách nào để tạo trường hợp không phân biệt chữ hoa chữ thường unordered_map<string, int>
?
Không ghi đè key_equal
là đủ hay tôi cũng cần cập nhật hasher
?không phân biệt chữ hoa chữ thường unordered_map <string, int>
8
A
Trả lời
2
Hasher cũng cần được cập nhật, vì thuật toán băm mặc định does not produce identical hash code for strings that differ only in the case of their symbols - một thuộc tính thiết yếu của hàm mã băm nhằm làm việc với chuỗi không phân biệt chữ hoa chữ thường.
std::string s1 = "Hello";
std::string s2 = "hello";
std::hash<std::string> hash_fn;
size_t hash1 = hash_fn(s1);
size_t hash2 = hash_fn(s2);
std::cout << hash1 << '\n';
std::cout << hash2 << '\n';
Điều này cho thấy giá trị khác nhau trên ideone:
101669370
3305111549
Các vấn đề liên quan
- 1. Đặt HashSet <string> không phân biệt chữ hoa chữ thường
- 2. Không phân biệt chữ hoa chữ thường không hoạt động
- 3. GetMethod không phân biệt chữ hoa chữ thường?
- 4. XML có phân biệt chữ hoa chữ thường không?
- 5. Java có phân biệt chữ hoa chữ thường không?
- 6. GetElementsByTagName không phân biệt chữ hoa chữ thường?
- 7. Đường dẫn XML - không phân biệt chữ hoa chữ thường
- 8. Tên tệp không phân biệt chữ hoa chữ thường?
- 9. URL không phân biệt chữ hoa chữ thường với mod_rewrite
- 10. Hàm in_array không phân biệt chữ hoa chữ thường
- 11. không phân biệt chữ hoa chữ thường số
- 12. Tên bảng có phân biệt chữ hoa chữ thường không?
- 13. Không phân biệt chữ hoa chữ thường với Dynamic Linq
- 14. Biến Bash: phân biệt chữ hoa chữ thường hay không?
- 15. Trường hợp Rspec không phân biệt chữ hoa chữ thường
- 16. Tìm kiếm không phân biệt chữ hoa chữ thường SOLR
- 17. Thay thế không phân biệt chữ hoa chữ thường
- 18. không phân biệt chữ hoa chữ thường trong NSArray chứaObject:
- 19. JavaScript: tìm kiếm phân biệt chữ hoa chữ thường
- 20. Biến không phân biệt chữ hoa chữ thường cho String replaceAll (,) Phương thức Java
- 21. Json.NET Không phân biệt thuộc tính không phân biệt chữ hoa chữ thường
- 22. Tìm kiếm danh sách phân biệt chữ hoa chữ thường
- 23. Loại.Không phân biệt chữ hoa chữ thường - WinRT
- 24. Chạy truy vấn cypher phân biệt chữ hoa chữ thường
- 25. OData và phân biệt chữ hoa chữ thường
- 26. GSON deserialize theo cách phân biệt chữ hoa chữ thường
- 27. Đối sánh phân biệt chữ hoa chữ thường trong Marpa
- 28. Tìm kiếm phân biệt chữ hoa chữ thường trong grails
- 29. Tìm kiếm phân biệt chữ hoa chữ thường với $ trong
- 30. Chọn chuỗi và phân biệt chữ hoa chữ thường
câu trả lời của bạn là đúng nói chung, nhưng chúng ta đang nói về 'std :: băm' chức năng ở đây. Vì vậy, câu trả lời của bạn có thể sai tùy thuộc vào cách 'std :: hash ' hoạt động cho các chuỗi (mà tôi không có ý tưởng)! –
MBZ
@MBZ Sẽ không có ý nghĩa gì khi thay đổi 'std :: hash' thành' string 'để không chú ý đến trường hợp ký tự: hàm sẽ đắt hơn về sử dụng CPU và sẽ gây ra nhiều xung đột hơn . – dasblinkenlight
bạn chỉ có thể làm cho tất cả các chuỗi chữ thường trước khi bạn băm chúng – aaronman