14
và làm cách nào tôi có thể thực hiện trong C++?Tôi có thể xác định bản đồ có khóa là cấu trúc không?
và làm cách nào tôi có thể thực hiện trong C++?Tôi có thể xác định bản đồ có khóa là cấu trúc không?
Bạn có thể sử dụng bất kỳ loại nào làm khóa bản đồ, miễn là nó thực hiện operator<
(cộng với các yêu cầu sao chép và gán thông thường cho các giá trị được lưu trữ trong vùng chứa).
Ví dụ:
struct example { int x; }
bool operator < (const example &l, const example &r) { return l.x < r.x; }
std::map<example, int> values;
Ngoài ra, bạn có thể cung cấp một chức năng so sánh như là đối số thứ ba của mẫu bản đồ thay vì xác định operator<
. Chi tiết hơn here (tham số Compare
).
"miễn là nó triển khai toán tử <" - hoặc có chuyên môn về 'std :: less' cho loại. 'map' sử dụng' less' theo mặc định và 'less' sử dụng toán tử'