Presentation is loading. Please wait.

Presentation is loading. Please wait.

Main Index Contents 11 Main Index Contents Shifting blocks of elements… Shifting blocks of elements… Model of a list object… Model of a list object… Sample.

Similar presentations


Presentation on theme: "Main Index Contents 11 Main Index Contents Shifting blocks of elements… Shifting blocks of elements… Model of a list object… Model of a list object… Sample."— Presentation transcript:

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

2 Main Index Contents 2 Shifting blocks of elements to insert or delete a vector item

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

4 Main Index Contents 4 Sample list

5 Main Index Contents 55 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 Main Index Contents 66 Main Index Contents CLASS list Constructors list(); Create an empty list. This is the default constructor. 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).

7 Main Index Contents 77 Main Index Contents CLASS list Operations T& back(); Return the value of the item at the rear of the list. Precondition: The vector must contain at least one element. 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.

8 Main Index Contents 88 Main Index Contents CLASS list Operations 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. 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.

9 Main Index Contents 99 Main Index Contents CLASS list Operations 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. 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.

10 Main Index Contents 10 Main Index Contents CLASS list Operations 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. 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.

11 Main Index Contents 11 Main Index Contents CLASS list Operations 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. 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.

12 Main Index Contents 12 Main Index Contents CLASS list Operations void erase(iterator pos); Erase the element pointed to by pos. Precondition:The list is not empty. Postcondition:The list has one fewer element. 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.

13 Main Index Contents 13 Main Index Contents CLASS list Operations 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 Main Index Contents 14 Main Index Contents CLASS list::iterator Operations * :Accesses the value of the item currently pointed to by the iterator.*iter; ++ :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

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

16 Main Index Contents 16 Removing an element from a list

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

18 Main Index Contents 18 Main Index Contents Splicing two lists

19 Main Index Contents 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 Main Index Contents 20 Main Index Contents Summary Slide 2 §- The list class has two iterator types: 1)iterator 1)iterator: A generalized list traversal pointer. 2)const_iterator 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 Main Index Contents 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 Main Index Contents 22 Main Index Contents Summary Slide 4 §- The sequential search of a list object firstlast -implemented by using an iterator range [first, last). last -It returns an iterator that points at the target value or has value last if the target is not in the list.

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


Download ppt "Main Index Contents 11 Main Index Contents Shifting blocks of elements… Shifting blocks of elements… Model of a list object… Model of a list object… Sample."

Similar presentations


Ads by Google