IRIX 6.5 » Books » Developer »
Standard Template Library Programmer's Guide
(document number: 007-3426-004 / published: 1999-05-21)
table of contents | additional info | download
find in page
| Category: containers | Component type: concept |
| X | A type that is a model of Front Insertion Sequence |
| a | Object of type X |
| T | The value type of X |
| t | Object of type T |
| Name | Expression | Type requirements | Return type |
|---|---|---|---|
| Front | a.front() [1] | reference if a is mutable, otherwise const_reference. | |
| Push front | a.push_front(t) | a is mutable. | void |
| Pop front | a.pop_front() | a is mutable. | void |
| Name | Expression | Precondition | Semantics | Postcondition |
|---|---|---|---|---|
| Front | a.front() [1] | !a.empty() | Equivalent to *(a.begin()). | |
| Push front | a.push_front(t) | Equivalent to a.insert(a.begin(), t) | a.size is incremented by 1. a.front() is a copy of t. | |
| Pop front | a.pop_front() | !a.empty() | Equivalent to a.erase(a.begin()) | a.size() is decremented by 1. |
| Symmetry of push and pop | push_front() followed by pop_front() is a null operation. |
[1] Front is actually defined in Sequence, since it is always possible to implement it in amortized constant time. Its definition is repeated here, along with push front and pop front, in the interest of clarity.
[2] This complexity guarantee is the only reason that front(), push_front(), and pop_front() are defined: they provide no additional functionality. Not every sequence must define these operations, but it is guaranteed that they are efficient if they exist at all.
Standard Template Library Programmer's Guide
(document number: 007-3426-004 / published: 1999-05-21)
table of contents | additional info | download
Copyright © 1993-2007 SGI, Inc. All rights reserved.