1 / 23

List Container and Iterators Operations

Learn how to manage a container with operations like inserting, removing, splicing elements in a list using iterators.

cassette
Download Presentation

List Container and Iterators Operations

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 6 – The List Container and Iterators 1 Main Index Contents • Shifting blocks of elements… • Model of a list object… • Sample list • The list ADT • CLASS list Constructors • CLASS list Operations(7 slides) • CLASS list::iterator Operations • Inserting an element into a list • Removing an element from a list • Ordered lists • Splicing two lists • Summary Slides(5 slides)

  2. Shifting blocks of elements to insert or delete a vector item

  3. 3 Main Index Contents Model of a list object with links to next and previous element

  4. Sample list

  5. 5 Main Index Contents The List ADT • The list API documents the member function prototype as well as pre- and postconditions. • provides three constructors to declare a list object.

  6. list(); Create an empty list. This is the default constructor. CLASS list <list> Constructors list(int n, const T&value = T()); Create a list with n elements, each having a specified value. If the value argument is omitted, the elements are filled with the default value for type T. Type T must have a default constructor, and the default value of type T is specified by the notation T(). list(T *first, T *last); Initialize the list, using the address range [first, last). 6 Main Index Contents

  7. T& back(); Return the value of the item at the rear of the list. Precondition: The vector must contain at least one element. CLASS list <list> Operations bool empty() const; Return true if the vector is empty, false otherwise. T& front(); Return the value of the item at the front of the list. Precondition: The vector must contain at least one element. 7 Main Index Contents

  8. void push_back(const T& value); Add a value at the rear of the list. Postcondition: The list has a new element at the rear, and its size increases by 1. CLASS list <list> Operations void pop_back(); Remove the item at the rear of the list. Precondition: The list is not empty. Postcondition: The list has a new element at the rear or is empty. 8 Main Index Contents

  9. void push_front(const T& value); Add a value at the front of the list. Postcondition: The list has a new element at the front, and its size increases by 1. CLASS list <list> Operations void pop_front(); Remove the item at the front of the list. Precondition: The list is not empty. Postcondition: The list has a new element at the front or is empty. int size() const; Return the number of elements in the vector. 9 Main Index Contents

  10. iterator begin(); Returns an iterator that references the first position (front) of the list. If the list is empty, the iterator value end() is returned. CLASS list <list> Operations const_iterator begin(); Returns a const_iterator that points to the first position (front) of a constant list. If the list is empty, the const_iterator value end() is returned. iterator end(); Returns an iterator that signifies a location immediately out of the range of actual elements. A program must not dereference the value of end() with the * operator. 10 Main Index Contents

  11. iterator end(); Returns an iterator that signifies a location immediately out of the range of actual elements. A program must not dereference the value of end() with the * operator. CLASS list <list> Operations const_iterator end(); Returns a const_iterator that signifies a location immediately out of the range of actual elements in a constant list. A program must not dereference the value of end() with the * operator. 11 Main Index Contents

  12. void erase(iterator pos); Erase the element pointed to by pos. Precondition: The list is not empty. Postcondition: The list has one fewer element. CLASS list <list> Operations void erase(iterator first, iterator last); Erase all list elements within the iterator range [first, last]. Precondition: The list is not empty. Postcondition: The size of the list decreases by the number of elements in the range. 12 Main Index Contents

  13. CLASS list <list> Operations 13 Main Index Contents iterator insert(iterator pos, const T& value); Insert value before pos, and return an iterator pointing to the position of the new value in the list. The operation does not affect any existing iterators. Postcondition: The list has a new element.

  14. *: Accesses the value of the item currently pointed to by the iterator. *iter; CLASS list::iterator <list> Operations ++: Moves the iterator to the next item in the list. iter++; --: Moves the iterator to the previous item in the list. iter--; ==: Takes two iterators as operands and returns truewhen they both point at the same item in the list. iter1 == iter2 !=: Returns true when the two iterators do not point at the same item in the list. iter1 != iter2 14 Main Index Contents

  15. 15 Main Index Contents Inserting an element into a list

  16. Removing an element from a list

  17. 17 Main Index Contents Ordered lists Position the iterator curr at the front of the list. Insert 50 in the list:

  18. 18 Main Index Contents Splicing two lists

  19. 19 Main Index Contents Summary Slide 1 §- list - A Sequence of elements stored by position. - Index access is not available… §- to access the value of an element, must pass through its preceding elements. §-list iterator - A generalized pointer that moves through a list element by element… forward or backward - At any point, the * operator accesses the value of a list item.

  20. 20 Main Index Contents Summary Slide 2 §- The list class has two iterator types: 1) iterator: A generalized list traversal pointer. 2) const_iterator: must be used with a constant list object. Each type is a nested class of list and must be accessed by using the scope operator ::

  21. 21 Main Index Contents Summary Slide 3 §- the list member function begin() - Gives an iterator an initial value that points to the first element. §- the list member function end() - Returns an iterator pointing just past the last element of the list.

  22. 22 Main Index Contents Summary Slide 4 §- The sequential search of a list object - implemented by using an iterator range [first, last). - It returns an iterator that points at the target value or has value last if the target is not in the list.

  23. 23 Main Index Contents Summary Slide 5 • §- list class member fns insert() and erase() • - Both use an iterator argument to modify a list. • insert(): places value in the list before the data referenced by the iterator pos. • erase(): removes the data item referenced by pos from the list.

More Related