Trong tiêu chuẩn C++ 14, phần [map.access]
văn bản là:
T& operator[](const key_type& x);
- Effects: Nếu không có tương đương chìa khóa để
x
trong bản đồ, chèn value_type(x, T())
vào bản đồ .
Vì vậy, cũng như quy định bởi câu trả lời Joseph Garvin của, kết quả của biểu thức mapped_type()
là những gì được chèn vào. Kiểu khởi tạo này được gọi là value-initialization.
Ý nghĩa của việc khởi tạo giá trị không đơn giản như được cung cấp trong các câu trả lời khác, đối với các loại lớp. Nó phụ thuộc vào loại nhà xây dựng mà loại lớp có, và liệu lớp đó có phải là tổng hợp hay không, như được giải thích bởi liên kết cppreference.
Đối với int
như trong câu hỏi này, giá trị khởi tạo có nghĩa là int
được đặt thành 0
.
Nguồn
2016-07-25 23:06:38
0 là giá trị pháp lý đối với các biến không xác định. –