14
y ¿cómo puedo hacerlo en C++?¿Puedo definir un mapa cuya clave es una estructura?
y ¿cómo puedo hacerlo en C++?¿Puedo definir un mapa cuya clave es una estructura?
Puede usar cualquier tipo como clave de mapa, siempre que implemente operator<
(más los requisitos habituales de copiar y asignar para valores almacenados en contenedores).
Por ejemplo:
struct example { int x; }
bool operator < (const example &l, const example &r) { return l.x < r.x; }
std::map<example, int> values;
Como alternativa, puede proporcionar una función de comparación como el tercer argumento de la plantilla de mapa en lugar de definir operator<
. Más detalles here (parámetro Compare
).
"siempre que implemente un operador <" - o hay una especialización de 'std :: less' para el tipo. 'map' usa' less' de forma predeterminada, y 'less' utiliza' operator '' de forma predeterminada, por lo que hay dos rutas en. –