STL std::list и метод erase в цикле

Как не надо делать:

Если после удаления записи, it = Items.end(), и применить ещё инкремент — получим ассерт.

Как надо делать:

От RAII к счёту ссылок или RAII v2 с shared_ptr

Классический объект шаблона проектирования RAII нельзя передавать в функции, копировать, т.к. сработает несколько раз деструктор и ресурс будет несколько раз освобождён. В случае освобождения памяти — получаем исключение системы. Освобождение памяти опасней, чем выделение. Все проблемы можно решить, если использовать shared_ptr.
Читать далее