像这样:
#include <algorithm>
#include <string>
float data[10]; // populate
std::string s(sizeof data);
char const * p = reinterpret_cast<char const *>(data);
std::copy(p, p + sizeof data, &s[0]);
注意sizeof data与 相同10 * sizeof(float),即数组中的字节数。
更新:正如詹姆斯所建议的,你可以做得更好,一口气写完:
char const * p = reinterpret_cast<char const *>(data);
std::string s(p, p + sizeof data); // beginning + length constructor
甚至:
#include <iterator>
std::string s(reinterpret_cast<char const *>(std::begin(data)), // begin + end
reinterpret_cast<char const *>(std::end(data))); // constructor