Циклически связанная очередьC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Циклически связанная очередь

Сообщение Anonymous »

Я пытаюсь реализовать итератор на основе диапазона для циклической связанной очереди. Мне удается заставить итерацию работать правильно, но по какой-то причине я не могу распечатать последний элемент в очереди. Я пытался настроить функции end() и Begin(), но ничего не работает. Я предоставил на рассмотрение фрагмент своего кода, поэтому надеюсь, что кто-нибудь сможет подсказать, что не так.
template
LinkedQueueTypeIterator::LinkedQueueTypeIterator(NodeType* start, int loc)
{
this->item = start;
location = loc;
}

template
ItemType& LinkedQueueTypeIterator::operator*()
{
return item->info;
}

template
LinkedQueueTypeIterator& LinkedQueueTypeIterator::operator++() {

if (item == nullptr || item->next == nullptr)
item = nullptr;
else
item = item->next;
return *this;
}

template
bool LinkedQueueTypeIterator::operator!=(const LinkedQueueTypeIterator& it) const
{
return item != it.item;
}

template
LinkedQueueTypeIterator LinkedQueueType::begin()
{
LinkedQueueTypeIterator it(rear->next, 0);
return it;
}

template
LinkedQueueTypeIterator LinkedQueueType::end()
{
LinkedQueueTypeIterator it(rear, length);
return it;
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... nked-queue
Ответить

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

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

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

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

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