O que é melhor, listas de adjacência ou matrizes de adjacência para problemas de gráfico em C ++?

O que é melhor, listas de adjacência ou matriz de adjacência, para problemas gráficos em C ++? Quais são as vantagens e desvantagens de cada