Nugget
Public Types | Public Member Functions | List of all members
eastl::intrusive_slist< T > Class Template Reference

#include <intrusive_slist.h>

Inheritance diagram for eastl::intrusive_slist< T >:
Inheritance graph
[legend]
Collaboration diagram for eastl::intrusive_slist< T >:
Collaboration graph
[legend]

Public Types

typedef intrusive_slist< T > this_type
 
typedef intrusive_slist_base base_type
 
typedef T node_type
 
typedef T value_type
 
typedef base_type::size_type size_type
 
typedef base_type::difference_type difference_type
 
typedef T & reference
 
typedef const T & const_reference
 
typedef T * pointer
 
typedef const T * const_pointer
 
typedef IntrusiveSListIterator< T, T *, T & > iterator
 
typedef IntrusiveSListIterator< T, const T *, const T & > const_iterator
 
- Public Types inherited from eastl::intrusive_slist_base
typedef eastl_size_t size_type
 
typedef ptrdiff_t difference_type
 

Public Member Functions

 intrusive_slist ()
 Creates an empty list.
 
iterator begin ()
 Returns an iterator pointing to the first element in the list. O(1).
 
const_iterator begin () const
 Returns a const_iterator pointing to the first element in the list. O(1).
 
const_iterator cbegin () const
 Returns a const_iterator pointing to the first element in the list. O(1).
 
iterator end ()
 Returns an iterator pointing one-after the last element in the list. O(1).
 
const_iterator end () const
 Returns a const_iterator pointing one-after the last element in the list. O(1).
 
const_iterator cend () const
 Returns a const_iterator pointing one-after the last element in the list. O(1).
 
iterator before_begin ()
 Returns iterator to position before begin. O(1).
 
const_iterator before_begin () const
 Returns iterator to previous position. O(1).
 
const_iterator cbefore_begin () const
 Returns iterator to previous position. O(1).
 
iterator previous (const_iterator position)
 Returns iterator to previous position. O(n).
 
const_iterator previous (const_iterator position) const
 Returns iterator to previous position. O(n).
 
reference front ()
 Returns a reference to the first element. The list must be empty.
 
const_reference front () const
 Returns a const reference to the first element. The list must be empty.
 
void push_front (value_type &value)
 Adds an element to the front of the list; O(1). The element is not copied. The element must not be in any other list.
 
void pop_front ()
 Removes an element from the back of the list; O(n). The element must be present, but is not deallocated.
 
bool contains (const value_type &value) const
 Returns true if the given element is in the list; O(n). Equivalent to (locate(x) != end()).
 
iterator locate (value_type &value)
 Converts a reference to an object in the list back to an iterator, or returns end() if it is not part of the list. O(n)
 
const_iterator locate (const value_type &value) const
 Converts a const reference to an object in the list back to a const iterator, or returns end() if it is not part of the list. O(n)
 
iterator insert (iterator position, value_type &value)
 Inserts an element before the element pointed to by the iterator. O(n)
 
iterator insert_after (iterator position, value_type &value)
 Inserts an element after the element pointed to by the iterator. O(1)
 
iterator erase (iterator position)
 Erases the element pointed to by the iterator. O(n)
 
iterator erase_after (iterator position)
 Erases the element after the element pointed to by the iterator. O(1)
 
iterator erase (iterator first, iterator last)
 Erases elements within the iterator range [first, last). O(n).
 
iterator erase_after (iterator before_first, iterator last)
 Erases elements within the iterator range [before_first, last). O(1).
 
void swap (this_type &x)
 Swaps the contents of two intrusive lists; O(1).
 
void splice (iterator position, value_type &value)
 
void splice (iterator position, this_type &x)
 
void splice (iterator position, this_type &x, iterator xPosition)
 
void splice (iterator position, this_type &x, iterator first, iterator last)
 
void splice_after (iterator position, value_type &value)
 
void splice_after (iterator position, this_type &x)
 
void splice_after (iterator position, this_type &x, iterator xPrevious)
 
void splice_after (iterator position, this_type &x, iterator before_first, iterator before_last)
 Moves the elements in the range of [before_first+1, before_last+1) to be after position. O(1).
 
bool validate () const
 
int validate_iterator (const_iterator i) const
 
- Public Member Functions inherited from eastl::intrusive_slist_base
bool empty () const
 Returns true if the container is empty.
 
size_type size () const
 Returns the number of elements in the list; O(n).
 
void clear ()
 Clears the list; O(1). No deallocation occurs.
 
void pop_front ()
 Removes an element from the front of the list; O(1). The element must be present, but is not deallocated.
 
void reverse ()
 Reverses a list so that front and back are swapped; O(n).
 

Additional Inherited Members

- Protected Attributes inherited from eastl::intrusive_slist_base
intrusive_slist_nodempNext
 

Detailed Description

template<typename T = intrusive_slist_node>
class eastl::intrusive_slist< T >

intrusive_slist

Member Function Documentation

◆ splice() [1/4]

template<typename T = intrusive_slist_node>
void eastl::intrusive_slist< T >::splice ( iterator  position,
this_type x 
)

Moves the contents of a list into this list before the element pointed to by position; O(n). Required: &x != this (same as std::list).

◆ splice() [2/4]

template<typename T = intrusive_slist_node>
void eastl::intrusive_slist< T >::splice ( iterator  position,
this_type x,
iterator  first,
iterator  last 
)

Moves the range of elements [first, last) from list x into the current list before the element pointed to by position; O(n). Required: position must not be in [first, last). (same as std::list).

◆ splice() [3/4]

template<typename T = intrusive_slist_node>
void eastl::intrusive_slist< T >::splice ( iterator  position,
this_type x,
iterator  xPosition 
)

Moves the given element pointed to i within the list x into the current list before the element pointed to by position; O(n).

◆ splice() [4/4]

template<typename T = intrusive_slist_node>
void eastl::intrusive_slist< T >::splice ( iterator  position,
value_type &  value 
)

Moves the given element into this list before the element pointed to by position; O(n). Required: x must be in some list or have first/next pointers that point it itself.

◆ splice_after() [1/3]

template<typename T = intrusive_slist_node>
void eastl::intrusive_slist< T >::splice_after ( iterator  position,
this_type x 
)

Moves the contents of a list into this list after the element pointed to by position; O(n). Required: &x != this (same as std::list).

◆ splice_after() [2/3]

template<typename T = intrusive_slist_node>
void eastl::intrusive_slist< T >::splice_after ( iterator  position,
this_type x,
iterator  xPrevious 
)

Moves the element after xPrevious to be after position. O(1). Required: &x != this (same as std::list).

◆ splice_after() [3/3]

template<typename T = intrusive_slist_node>
void eastl::intrusive_slist< T >::splice_after ( iterator  position,
value_type &  value 
)

Moves the given element into this list after the element pointed to by position; O(1). Required: x must be in some list or have first/next pointers that point it itself.


The documentation for this class was generated from the following file: