CPP-101: Двусвързан списък с водещ елемент

Пример: използване на член-функцията insert

За да демонстрираме използването на член-функцията insert добавяме следният фрагмент към главната функция:

int main() {

    ...
    
    List::iterator it=l.get_iterator();
    while(it.has_next() && it.next()!=10) {
        // do nothing
    }
    l.insert(it,0);
    print_list(l);


    return 0;
}

Кодът в редове 5-8 обхожда елементите на списъка докато не намери елемент със стойност 10. При излизане от списъка итератора it или е насочен към елемент със стойност 10 или е насочен към фиктивният елемент. Тъй като в нашият списък List l имаме елемент със стойност 10 итераторът е насочен към този елемент.

При извикване на член-функцията insert в ред 9 в списъка се вмъква нов елемент със стойност 0 преди елемента със стойност 10. Преди изпълнението на фрагмента, елементите в списъка са:

-20 -10 10 20

След изпълнението на този фрагмент се очаква елементите на списъка да бъдат:

-20 -10 0 10 20

Очакваният изход от изпълнението на програмата е следният:

lubo@bolt:~/code$ g++ list.cc
lubo@bolt:~/code$ ./a.out 
ListError: back(): list is empty
ListError: front(): list is empty
10
20
-10
-20
-20, -10, 10, 20, 
[-20, -10, 10, 20, ]
[-20, -10, 0, 10, 20, ]
lubo@bolt:~/code$
Публикувано в CPP-101, Кръг 2, ООП с етикети , , . Постоянна връзка.