Problem: Ich habe eine ganze Zahl; Diese Ganzzahl muss in einen stl :: string-Typ konvertiert werden.
In der Vergangenheit habe stringstream
ich eine Konvertierung durchgeführt, und das ist nur ein bisschen umständlich. Ich weiß, dass der C-Weg darin besteht, a zu machen sprintf
, aber ich würde viel lieber eine typsichere C ++ - Methode machen.
Gibt es einen besseren Weg, dies zu tun?
Hier ist der Stringstream-Ansatz, den ich in der Vergangenheit verwendet habe:
std::string intToString(int i)
{
std::stringstream ss;
std::string s;
ss << i;
s = ss.str();
return s;
}
Dies könnte natürlich folgendermaßen umgeschrieben werden:
template<class T>
std::string t_to_string(T i)
{
std::stringstream ss;
std::string s;
ss << i;
s = ss.str();
return s;
}
Ich habe jedoch die Vorstellung, dass dies eine ziemlich "schwere" Implementierung ist.
Zan bemerkte jedoch, dass der Aufruf ziemlich nett ist:
std::string s = t_to_string(my_integer);
Ein schöner Weg wäre jedenfalls ... schön.
Verbunden:
Alternative zu itoa () zum Konvertieren von Integer in String C ++?