ksey3000
@ksey3000
Инженер-сетевик. Программирование-хобби.

Самый быстрый способ смещения элементов массива на одну позицию?

Имеется массив данных:
long long *Data=new long long[DATA_COUNT];

DATA_COUNT может быть тысячи и десятки тысяч.

Необходимо при каждой итерации смещать элементы массива на одну позицию влево (затирая самый первый элемент).
Например:
Было - 0, 1, 2, 3, 4, 5
Стало- 1, 2, 3, 4, 5, X - где X - место для следующих (более новых) данных.

Я делаю так:
memmove (&Data[0], &Data[1], (DATA_COUNT-1)*sizeof(long long));

Это самый быстрый способ? Или есть быстрее?
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вообще-то такая структура называется очередь (FIFO) и реализуется на базе двух указателей - чтения (начало очереди) и записи (конец очереди).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@vilgeforce
Раздолбай и программист
Гораздо быстрее менять указатель на "начало" массива.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы