2010-03-02 21 views
7

Tôi cần phải theo dõi std :: set element bằng cách lưu iterator được trả về bởi set.find().Trong bao lâu trình lặp trở lại bởi std :: set.find() tồn tại?

Câu hỏi của tôi không chèn và xóa các yếu tố khác làm mất hiệu lực trình lặp lại thu được? Từ một thử nghiệm đơn giản tôi đã làm tôi có thể nhìn thấy nó không phải là, nhưng tôi muốn đảm bảo tính năng này là do thiết kế.

Trả lời

11

Nó không bao giờ làm mất hiệu lực vòng lặp hoặc con trỏ/tham chiếu đến các phần tử. Chỉ khi bạn xóa chính phần tử đó thì trình vòng lặp hoặc con trỏ/tham chiếu trở thành không hợp lệ.

23.1.2/8:

Các thành viên chèn sẽ không ảnh hưởng đến tính hợp lệ của vòng lặp và tài liệu tham khảo để các thùng chứa, và các thành viên erase sẽ làm mất hiệu lực chỉ lặp và tham chiếu đến các yếu tố bị xóa.

+0

Cảm ơn. Nhanh quá! – jackhab

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