Nadie parece hacerm A P refleja, sinm A los p- reflejan participar disjuntos-set!
m A la p- primer beneficio es que como una matriz, puede abrir mucho!
Creom A la p- es un buen cosa, si desea abrir una gran variedad, pero va a explotar, lo mejor es usarm A P , que puede ser utilizado como una matriz regular.
Por ejemplo:
map<int,int>x;
Se puede pensar en una matriz como una matriz común con x, pero prestar atención a ella.
map<int,int>x;
Después de definir x array, no se puede utilizar c ++ funciones de matriz, tales como memset
No se puede escribir
memset(a,0,sizeof(a));
m A P Un segundo beneficio no es necesariamente un índice entero puede incluso ser una cadena!
m un p< Tipo de índice, tipos numéricos>;
Por ejemplo:
map<string,char>a;
string st="123";
a[st]='1';
suplemento
m A P sólo se puede abrir matrices unidimensionales, matriz bidimensional también puede estar abierto.
Por ejemplo:
map<int,map<int,int>/*注意这里是一定要有空格的,否则会编译错误*/>;
Con esta base de conocimiento, podemos hacer más fácil a esta pregunta.
En primer lugar, el título para ver el recorrido, instintivamente pensamos en disjuntos-set
Disjuntos-set es un algoritmo para recorrer todo el mapa en forma de recursiva, dejamos que disjuntos-set primera atravesar el hijo de la raíz subárbol izquierdo, deja primer hijo disjuntos-set recorrido hacia la derecha como la raíz del subárbol , por lo que tenemos este Código disjuntos-set: