Я создаю граф, и мне нужно вернуть итератор в список дуг, идущих из вершины. Я могу нормально вернуть начало итератора, но когда я возвращаю конец итератора, он просто возвращает «0xcdcdcdcdcdcdcdcd» и завершается с кодом ошибки 3.
У меня есть список дуг в моем настроенном файле заголовка например:
list<Arc<V, E>> m_edges;
и мои функции для возврата итератора как таковые:
template<class V, class E>
inline const typename list<Arc<V, E>>::iterator Vertex<V, E>::GetIteratorBegin()
{
const typename list<Arc<V, E>>::iterator retVal = m_edges.begin();
return retVal;
}
template<class V, class E>
inline const typename list<Arc<V, E>>::iterator Vertex<V, E>::GetIteratorEnd()
{
const typename list<Arc<V, E>>::iterator retVal = m_edges.end();
return retVal;
}
Затем я использую свои итераторы следующим образом:
list<Arc<string, string>>::iterator vertArcIterEnd = (*it).GetIteratorEnd();
Я использую vertArcIterEnd здесь, строка сразу после инициализации:
for (list<Arc<string, string>>::iterator vertArcIterBegin = (*it).GetIteratorBegin(); vertArcIterBegin != vertArcIterEnd; ++vertArcIterBegin)