2012-07-12 29 views
6

Tôi có số multimap<key_type,value_type> và tôi muốn biết liệu một khóa cụ thể có xuất hiện trên bản đồ nhiều nhất một lần hay không.Làm cách nào để xác định xem một khóa cụ thể có phải là duy nhất trong multimap không?

Tôi biết tôi có thể gọi multimap.equal_range(key) để tìm một iterator khi bắt đầu và kết thúc của dãy chứa key nhưng tôi muốn biết nếu chỉ có một yếu tố giữa range.firstrange.second.

Có cách nào tốt hơn là tăng giá trị range.first để xem liệu giá trị này có bằng range.end không? Kể từ multimap::iterator là hai chiều nó không phải là một việc lớn để hoàn tác tăng nhưng nó có vẻ cẩu thả để làm điều đó.

Trả lời

7

Bạn có thể kiểm tra xem std::multimap::count(key) == 1 không?

+0

Ah, không thấy quá tải 'đếm'. Hoàn hảo. Tôi sẽ xác nhận nó hoạt động vào ngày mai và đánh dấu là đã trả lời. –

+0

@LarryOsterman Phải '" chìa khóa "' được trích dẫn? Tôi thích nó mà không có dấu ngoặc kép vì 'khóa' có thể là một biến. @Nawaz Cảm ơn bạn đã liên kết trang web tham chiếu tốt hơn –

+0

Không, không phải - đây là điều xấu của tôi, trong trường hợp của tôi, khóa là một chuỗi và tôi đã đặt cách nhau. Tôi sẽ hoàn tác. –

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