Tôi cần lưu trữ các chuỗi ở định dạng giá trị khóa. Vì vậy, tôi đang sử dụng Bản đồ như dưới đây.map <string, string> cách chèn dữ liệu vào bản đồ này?
#include<map>
using namespace std;
int main()
{
map<string, string> m;
string s1 = "1";
string v1 = "A";
m.insert(pair<string, string>(s1, v1)); //Error
}
Am nhận được dưới đây lỗi tại chèn dòng
lỗi C2784: 'bool std :: operator < (const std :: _ Tree < _Traits> &, std :: const _ Tree < _Traits> &) ': không thể suy luận đối số mẫu cho' const std :: _ Tree < _Traits> & 'từ' const std :: string '
Tôi đã thử hàm make_pair cũng giống như dưới đây, nhưng điều đó cũng báo cáo cùng một lỗi.
m.insert(make_pair(s1, v1));
Vui lòng cho tôi biết điều gì là sai và giải pháp cho vấn đề trên là gì. Sau khi giải quyết vấn đề trên, tôi có thể sử dụng như dưới đây để lấy giá trị dựa trên chính
m.find(s1);
Điều này làm cho mã được biên dịch. Nhưng tôi tự hỏi tại sao nó không đưa ra lỗi khi tôi nói chuỗi s1 = "1"; Chỉ khi gọi chèn nó cung cấp cho lỗi. – bjskishore123
@ bjskishore123: Có lẽ bạn có một lớp khác có tên là 'chuỗi' mà bằng cách nào đó va chạm với' std :: string'? – ereOn
@ereOn - hoặc có thể đó không phải là lỗi biên dịch duy nhất –