String stream é um recurso que permite escrevermos em uma string como se estivéssemos realizando saída na tela (ex: via cout). Dessa forma, é possível utilizar todas as funcionalidades da iostream (formatos, alinhamento, precisão numérica, tamanho de campo, etc) em uma string.
É útil, por exemplo, para retornarmos informações sobre um objeto sob forma de string, especialmente quando é preciso combinar dados numéricos com dados não-numéricos.
Para utilizar o recurso de string stream, é necessário primeiramente incluir o header sstream. A partir daí, deve-se declarar um objeto do tipo ostringstream (output string stream) e utilizá-lo como se fosse uma saída padrão, ou seja, da mesma forma que cout:
Finalmente, para se obter a string armazenada no objeto ostringstream usa-se o método str:
#include <iostream>
#include <iomanip>
#include <cmath>
#include <sstream>
using namespace std;
string converte(float valor)
{
ostringstream aux;
aux << "Exemplo de saída em string ";
aux << fixed << setprecision(2) << sqrt(valor);
return aux.str();
}
int main()
{
float v;
cout << "Digite o valor: ";
cin >> v;
cout << converte(v);
}
Observe que se o objetivo é apenas concatenar (juntar) duas ou mais strings, não é necessário usar string stream: basta empregar o operador de concatenação (+).
O guia de referência à biblioteca padrão C++ contém uma descrição completa de todas as operações sobre string streams: veja aqui.