Tôi đang cố gắng hiểu ý nghĩa của const_iterator. Tôi có đoạn code ví dụ sau:Hiểu const_iterator với con trỏ?
void CustomerService::RefreshCustomers()
{
for(std::vector<Customer*>::const_iterator it = customers_.begin();
it != customers_.end() ; it ++)
{
(*it)->Refresh();
}
}
Refresh()
là một phương pháp trong lớp Customer
và nó không được định nghĩa là const. Lúc đầu, tôi nghĩ rằng const_iterator được cho là không cho phép sửa đổi các yếu tố của container. Tuy nhiên, mã này biên dịch mà không có khiếu nại. Đây có phải là vì có thêm một mức độ gián tiếp đang diễn ra không? Chính xác const_iterator làm/nghĩa là gì?
CẬP NHẬT
Và trong một tình huống như thế này, là nó thực hành tốt nhất để sử dụng const_iterator?
"sửa đổi" có nghĩa là '* it = some_other_thing', đó không phải là những gì bạn đang làm. –