2010-07-28 21 views

Trả lời

13

Các thành phần trong một std::map phải có các khóa duy nhất, vì vậy ... không.

Vùng chứa std::multimap cho phép nhiều giá trị được ánh xạ tới một khóa. Khi lặp qua std::multimap, các phần tử được sắp xếp theo khóa, nhưng thứ tự của các phần tử có cùng khóa không được chỉ định.

Lưu ý rằng trong bản thảo mới nhất của tiêu chuẩn C++ 0x sắp tới (N3092), thứ tự tương đối của các phần tử có cùng khóa được bảo đảm (vì vậy, tại một số thời điểm, bạn sẽ có thể dựa vào hành vi này).

+0

Cảm ơn. Tôi có nghĩa là multimap trong bài trước của tôi. – Thomson

+2

tuyên bố này có vẻ khác với tiêu chuẩn mới được đề xuất cuối cùng mà tôi có (nhưng đó là 21 tháng tuổi (N2798 = 08-0308)) Tôi báo giá: Để multiset và multimap, chèn và xóa giữ thứ tự tương đối tương đương các yếu tố. trang 768 Nếu phạm vi chứa các phần tử tương đương với t tồn tại trong a_eq, t được chèn vào cuối phạm vi đó. trang 771 – pgast

+0

@pgast: Rất thú vị. Ngôn ngữ đó là trong C++ 0x FCD (N3092). Tuy nhiên, nó không phải là trường hợp trong tiêu chuẩn C++ hiện tại (C++ 03) mà thứ tự tương đối được duy trì. Cảm ơn bạn đã chỉ ra thay đổi đó. –

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