Diferencia entre "endl" y "\ n" [duplicado]

Posible duplicado:
C ++: "std :: endl" vs "\ n"

Me pregunto si hay algunasignificativo diferencia entre estas dos formas de imprimir nueva línea:

cout << endl;  //approach1
cout << "\n";  //approach2

¿Hay alguna diferencia práctica?