Theo http://www.cplusplus.com/reference/map/map/, tôi có thể sử dụng m[k]
hoặc m.at(k)
để truy cập giá trị của khóa k
trong bản đồ m
. Tuy nhiên, khi tôi cố gắng làmstd :: toán tử truy cập bản đồ không được chấp nhận? không có toán tử [] khớp với các toán hạng này
derivMap[fx]
trong mã của tôi, nơi derivMap là một yếu tố của loại std::map<std::string,std::string>
Visual Studio 2013 mang lại cho tôi những cảnh báo
không operator [] phù hợp với các toán hạng
Tuy nhiên, khi tôi thay đổi mã của mình thành
derivMap.at(fx)
Tôi không gặp lỗi. Bạn có hiểu biết gì về vấn đề này không?
Tôi thích '.find' thành' .at'. Tôi không bao giờ sử dụng '.at'. –
@MooingDuck Tôi đoán nó phụ thuộc vào việc sự vắng mặt của một phần tử là một lỗi hay không (và cho dù bạn có C++ 11.) – juanchopanza