dụ giả tạo, vì lợi ích của câu hỏi:Tại sao không phải là toán tử [] const cho các bản đồ STL?
void MyClass::MyFunction(int x) const
{
std::cout << m_map[x] << std::endl
}
này sẽ không biên dịch, vì toán tử [] là không const.
Điều này là không may, vì cú pháp [] trông rất rõ ràng. Thay vào đó, tôi phải làm một cái gì đó như thế này:
void MyClass::MyFunction(int x) const
{
MyMap iter = m_map.find(x);
std::cout << iter->second << std::endl
}
Điều này luôn luôn làm phiền tôi. Tại sao toán tử [] không const?
gì nên 'operator [] 'năng suất trong trường hợp phần tử đã cho không tồn tại? –
@Frerich Raabe: Tương tự như chức năng thành viên: ném tiêu chuẩn :: out_of_range –