Существует ли лучший способ инвертировать массив байтов в памяти?

totalPatientsA и totalPatientsB должны быть определены как массивы. Далее вы можете сделать это:

// add new value to array
$this->totalPatientsA[] = $patients['user_type_detail'];
$this->totalPatientsB[] = $patients['datacount'];
11
задан xian 25 February 2009 в 09:37
поделиться

4 ответа

Стандартная библиотека имеет a std::reverse функция:

#include <algorithm>
void ReverseBytes( void *start, int size )
{
    char *istart = start, *iend = istart + size;
    std::reverse(istart, iend);
}
26
ответ дан 3 December 2019 в 01:04
поделиться

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

2
ответ дан 3 December 2019 в 01:04
поделиться

При инвертировании двоичных данных из файла с другим порядком байтов, необходимо, вероятно, использовать ntoh* и hton* функции, которые преобразовывают указанные размеры данных из сети для хостинга порядка и наоборот. ntohl, например, преобразовывает 32 бита, неподписанные долго от обратного порядка байтов (сетевой порядок) для хостинга порядка (прямой порядок байтов на x86 машинах).

1
ответ дан 3 December 2019 в 01:04
поделиться

Я рассмотрел бы stl:: подкачайте и удостоверьтесь, что это оптимизировано; после этого я сказал бы, что Вы довольно оптимальны для пространства. Я довольно уверен, что это оптимально временем также.

0
ответ дан 3 December 2019 в 01:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: