Qual é a diferença entre cout, cerr, clog of iostream header em c ++? Quando usar qual?

Eu tentei pesquisar a diferença entre cout, cerre clogna internet, mas não conseguiu encontrar uma resposta perfeita. Ainda não tenho certeza de quando usar qual. Alguém pode me explicar, através de programas simples e ilustrar uma situação perfeita de quando usar qual? Visitei este site que...