C ++ - конвертировать std :: string из массива с плавающей точкой - PullRequest
0 голосов
/ 15 сентября 2018

Этот вопрос является продолжением до C ++ - Преобразование массива с плавающей точкой в ​​std :: string .

Как преобразовать std::string обратно в массив с плавающей точкой, который был преобразован в строкуиспользуя reinterpret_cast.

1 Ответ

0 голосов
/ 15 сентября 2018

Получить указатель на данные поддержки строки из метода c_str(). Затем повторно интерпретируйте его обратно на указатель с плавающей точкой.

const float* array_of_floats = reinterpret_cast<const float*>(str.c_str());
int len = str.size() / sizeof(float);

Как правило, сериализация двоичных данных (таких как массив чисел с плавающей запятой) в string может работать, но в лучшем случае странно и, скорее всего, опрометчиво. Вам лучше использовать std::vector<uint8_t> в качестве массива байтов для хранения данных с плавающим указателем вместо экземпляра строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...