¿Qué es mejor, listas de adyacencia o matrices de adyacencia para problemas de gráficos en C ++?

¿Qué es mejor, listas de adyacencia o matriz de adyacencia, para problemas de gráficos en C ++? ¿Cuales son las ventajas y desventajas de cada