Tôi vừa mới được lọ của thành viên này:Tại sao bản đồ <string, string> chấp nhận ints làm giá trị?
#include <map>
#include <string>
#include <iostream>
using namespace std;
int main() {
map<string, string> strings;
strings["key"] = 88; // surprisingly compiles
//map<string, string>::mapped_type s = 88; // doesn't compile as expected
cout << "Value under 'key': '" << strings["key"] << "'" << endl;
return 0;
}
It in 'X' là 88 trong ASCII.
Tại sao bản đồ chuỗi chấp nhận int làm giá trị? Tài liệu cho bản đồ là operator[]
cho biết nó trả về mapped_type&
là string&
trong trường hợp này và nó không có chuyển đổi ngầm từ int
, phải không?
Liên quan: [Tại sao C++ cho phép một số nguyên được gán cho một chuỗi?] (Http://stackoverflow.com/q/1177704/335858). – dasblinkenlight