Tôi đã tra cứu từ điển trong C# và có vẻ rất hữu ích, và tự hỏi liệu có thể sử dụng chúng trong C++ hay không. dường như không phải là tương đương mà tôi có thể tìm thấy. Có một số loại thư viện mà tôi có thể tải xuống và đưa vào dự án hoặc có chức năng thực hiện điều tương tự chỉ với một tên khác.Có thể sử dụng từ điển trong C++
Trả lời
Có loại tương ứng trong STL, được gọi là std::map
.
Nó có chức năng cơ bản giống như từ điển .NET, nhưng việc triển khai hoàn toàn khác. std::map
là nội bộ dựa trên cơ sở dữ liệu cây đỏ đen, trong khi Dictionary
sử dụng bảng băm trong nội bộ.
Nếu bạn chỉ đang tìm kiếm thứ gì đó có cùng hành vi, std::map
sẽ thực hiện, nhưng nếu bạn có lượng dữ liệu lớn, bạn phải biết các đặc tính hiệu suất khác nhau.
std::map giống như Dictionary
.
Có std::map
cho thời gian truy cập logarit (thường dựa trên việc triển khai cây) và std::unordered_map
(kể từ C++ 11) cho thời gian truy cập tuyến tính thường xuyên nhất, thường xảy ra (thường dựa trên triển khai băm).
Tôi muốn nói rằng tiêu chuẩn yêu cầu triển khai băm cho 'std :: unordered_map' và thậm chí là phiên bản quản lý va chạm rất cụ thể. Nếu không, các hàm như 'bucket_count()' và 'load_factor()' có nghĩa là gì? –
@JamesKanze Nó thực sự sẽ là khá khó khăn để đến với một thực hiện khác nhau của 'std :: unordered_map'. Tôi đã cố gắng nhấn mạnh thực tế là tiêu chuẩn không thực sự đòi hỏi một sự thực hiện cụ thể, chỉ có các "hiệu ứng quan sát được" (theo nghĩa thông thường, không phải trong định nghĩa chuẩn). – Angew
* thường dựa trên việc triển khai băm *: Tôi sẽ nói rằng vì các vị từ chỉ được cung cấp là một hasher (mặc định là 'std :: hash
- 1. Từ điển C# sử dụng TValue trong một Từ điển khác
- 2. Sử dụng từ điển trong thuộc tính
- 3. C# Từ điển và Sử dụng Bộ nhớ Hiệu quả
- 4. Từ điển sử dụng generics
- 5. Xử lý từ điển C# bằng cách sử dụng LINQ
- 6. const Từ điển trong C#
- 7. C#: Có thể sử dụng các biểu thức hoặc chức năng như các phím trong từ điển không?
- 8. Có thể tạo một từ điển có khóa yếu trong C# không?
- 9. Điều tra từ điển trong C#
- 10. Từ điển đơn giản trong C++
- 11. Từ điển đồng thời trong C#
- 12. Có thể sử dụng Enum với Pair Values như từ điển
- 13. Array của từ điển trong C#
- 14. Cách tạo từ điển trong C?
- 15. C# Từ điển của mảng
- 16. Đọc từ điển C# trong Javascript
- 17. Lazy thuộc tính từ điển trong C#
- 18. C# tới Java - Từ điển?
- 19. Hunspell - Không thể mở tệp từ hoặc tệp từ điển cho từ điển có tên en_US
- 20. Chức năng C# Store trong từ điển
- 21. Bạn có thể chuyển đổi từ điển C# sang mảng kết hợp Javascript bằng cách sử dụng asp.net mvc Json()
- 22. C# Tra cứu từ điển
- 23. Sử dụng biến làm khóa từ điển trong mẫu Django
- 24. Tôi có thể sử dụng Danh sách các đối tượng làm Khóa Từ Điển không?
- 25. Sử dụng Đối tượng Từ điển trong Excel VBA
- 26. Sử dụng từ điển trong Mako các mẫu
- 27. C# linq trong Từ điển <>
- 28. Tôi có thể sử dụng các phần tử từ điển làm đối tượng khóa không?
- 29. Điều gì có thể được sử dụng làm từ điển tài nguyên hai mặt?
- 30. có thể sử dụng lambda làm từ điển mặc định không?
unordered_map :) – NoSenseEtAl
'std :: unordered_map' thực hiện chức năng từ điển bằng cách sử dụng bảng băm (như C# 'Từ điển') --__ IF__ bạn có C++ 11 –
@SchighSchagh: vâng, luôn có 'boost :: unordered_map 'else;) –