포인터에 대한 모든 링크를 확인했지만 처리되지 않은 예외가 계속 발생하여 inter 위치 바로 다음에 노드를 삽입하는 데 문제가 있습니다. 다 맞 앗어. 누구든지 내 코드를보고 무엇이 잘못 됐는지 보겠습니까?deque 클래스의 iter 위치 뒤에 노드를 삽입하십시오.
void insert_after(DequeIterator<E>& iter, E x)
{
if(_size == 0)
{
insert_front(x);
}
else
{
assert(!iter.at_end());
// need to check, if its the iter is the last element
// do insert_back instead
if(iter.node() == _tail)
insert_back(x);
else
{
// create a temp2 pointer to hold the address of iter
DNode<E>* temp2 = iter.node();
// set temp2 equal to the address of the node after
// iter before inserting
iter.node()->next()->set_next(temp2);
// create a new node to insert
DNode<E>* temp = new DNode<E>(iter.node(), x, temp2);
// set the iter->next to hold the address of the new node
iter.node()->next()->set_next(temp);
//set the address of temp2->prev to hold the address
// of the new node.
// This is also where I got the exception error !!!!
temp2->prev()->set_prev(temp);
_size++;
}
}
}
독자적인 deque 구현입니까? 그렇다면 코드를보기 좋게 만한다면이 코드는별로 도움이되지 않습니다. – edorado