Re[18]: cpp и математика
От: B0FEE664  
Дата: 09.08.16 10:55
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Я посмотрел в исходниках libstdc++ — насколько я распарсил, там именно так — последний узел имеет только два указателя, без места под данные.

Похоже на то.

EP>В других реализациях может быть по-другому.

Ага:
_Value_type _Myval;    // the stored value, unused if head


BFE>>А почему вообще нельзя обойтись без этой ноды?

EP>Ты имеешь в виду использовать вместо неё nullptr? Не получится — список двусвязный, мы можем взять std::prev от .end(). Можно конечно попробовать без дополнительного узла, но будет сложнее, а главное медленнее.
Есть варианты. Например, .end() итератор может хранить указатель на сам List, а List может иметь хранить указатель на last. Но придётся заводить отдельный тип, который должен будет мимикрировать под вид обычного итератора...

EP>Да и проблемы в дополнительной ноде нет никакой — она хранится по значению в std::list, и содержит только два указателя которые нужны в любом случае.

Согласен.
И каждый день — без права на ошибку...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.