Член-функция insert
За вмъкване на елемент в списъка се използва член-функцията insert
. Семантиката на тази член-функция ще имитира поведението на член-функцията insert
в класа std::list
на стандартната библиотека.
iterator insert ( iterator position, int val );
Член-функцията вмъква нов елемент със стойност val
преди елемента, към който е насочен итератора position
. Функцията връща итератор, насочен към новия елемент, добавен към списъка.
При реализиране на член-функцията insert
създаваме нов елемент
Node* n=new Node(val);
който трябва да бъде вмъкнат меджу елементите, към които са насочени указателите it.current_
и prev=it.current_->prev_
.
Фукцията връща итератор, насочен към новият елемент:
class List { ... public: ... iterator insert(iterator it, int val) { Node* n=new Node(val); Node* prev=it.current_->prev_; n->next_=it.current_; it.current_->prev_=n; prev->next_=n; n->prev_=prev; return iterator(this,n); } ... };