Изменение размера круговых очередей?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Изменение размера круговых очередей?

Сообщение Anonymous »

В настоящее время я работаю над реализацией циклических очередей и столкнулся с проблемой при изменении размера очереди. Я успешно реализовал функцию изменения размера для линейных очередей (массивов).
Вот функция, которую я сейчас использую для изменения размера линейных очередей:

Код: Выделить всё

template 
void Queue::Grow() {
const uint32_t newSize = m_size + 1;
T* newArray = new T[newSize];
for (int i = 0; i < static_cast(m_size); i++)
newArray[i] = array[i];
delete[] array;
m_size = newSize;
array = newArray;
}
Однако применение того же принципа к циклическим очередям, похоже, противоречит цели использования циклической структуры.
Может ли кто-нибудь предоставить информацию или пример реализации? о том, как изменить размер круговых очередей?
Заранее благодарим за помощь!

Подробнее здесь: https://stackoverflow.com/questions/784 ... lar-queues
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»