Necesito almacenar cadenas en formato de valor clave. Así que estoy usando Map como a continuación.map <string, string> cómo insertar datos en este mapa?
#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 conseguir a continuación error en la línea de inserción
error C2784: 'std :: bool operador < (const std :: _ árbol < _Traits> &, const std :: _ árbol < _Traits> &)': no se pudo deducir argumento de plantilla para 'const std :: _ árbol < _Traits> &' de 'const std :: string'
Probé la función make_pair también como a continuación, pero eso también informa el mismo error.
m.insert(make_pair(s1, v1));
Por favor, hágamelo saber lo que está mal y cuál es la solución para el problema anterior. Después de resolver problema anterior, puedo utilizar, como a continuación para recuperar el valor basado en clave
m.find(s1);
Esto hizo que el código compilado. Pero me pregunto por qué no dio error cuando dije string s1 = "1"; Solo al llamar a insertar, da error. – bjskishore123
@ bjskishore123: ¿Quizás tengas otra clase cuyo nombre es 'string' que colisiona de alguna manera con' std :: string'? – ereOn
@ereOn - o tal vez ese no es el único error de compilación –