2010-10-14 47 views

Trả lời

19

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).

+2

"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ử'

Các vấn đề liên quan