Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Essential Tools Module Reference Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

RWTPtrSortedDlist<T,C,A>

Module:  Essential Tools Module   Group:  STL-based Collection Classes


Does not inherit

Local Index

Members

Non-Members

Synopsis

#include <rw/tpsrtdli.h> 
RWTPtrSortedDlist<T,C,A> srtdlist;

Description

This class maintains an always-sorted pointer-based collection of values, implemented as a doubly-linked list. Items are ordered according to a comparison object of type C. Class T is the type pointed to by the items in the collection. C must induce a total ordering on elements of type T via a public member bool operator()(const T& x, const T& y) that returns true if x should precede y within the collection. The structure less<T> from the C++-standard header file <functional> is an example. Note that items in the collection will be dereferenced before being compared.

The value type must have operator== and operator< defined. This requirement is imposed by the C++ Standard Library.

Persistence

Isomorphic

Example

In this example, a sorted doubly-linked list of RWDates is exercised.

Program Output:

Related Classes

Class RWTPtrSortedVector<T> is an alternative always-sorted pointer-based collection. RWTPtrDlist<T,A> is an unsorted pointer-based doubly-linked list.

Class std::list<T*,A<T*> > is the C++-standard collection that serves as the underlying implementation for this class.

Public Typedefs

typedef rw_deref_compare<C,T> container_comp; 
typedef list<T*,A<T*> > container_type; 
typedef typename container_type::size_type size_type;
typedef typename container_type::difference_type
  difference_type;
typedef typename container_type::const_iterator
  const_iterator;
typedef typename container_type::iterator iterator;
typedef T* value_type; 
typedef T*& reference; 
typedef T* const& const_reference; 

Public Constructors

RWTPtrSortedDlist<T,C,A>();
RWTPtrSortedDlist<T,C,A>(const RWTPtrSortedDlist<T,C,A>& lst);
RWTPtrSortedDlist<T,C,A>(const list<T*,A<T*> >& lst); 
RWTPtrSortedDlist<T,C,A>(size_type n, T* p);
RWTPtrSortedDlist<T,C,A>(T** first,T** last);

Public Member Operators

bool
operator<(const RWTPtrSortedDlist<T,C,A>& lst) const; 
bool
operator==(const RWTPtrSortedDlist<T,C,A>& lst) const; 
reference
operator()(size_type i); 
const_reference
operator()(size_type i) const;
reference
operator[](size_type i); 
const_reference
operator[](size_type i) const;

Public Member Functions

void
apply(void (*fn)(T*&,void*), void* d); 
void
apply(void (*fn)(T*,void*), void* d);
void
apply(void (*fn)(const T*,void*), void* d) const;
reference
at(size_type i); 
const_reference
at(size_type i) const;
iterator
begin();
const_iterator
begin() const;
void
clear();
void
clearAndDestroy();
bool
contains(const T* a) const; 
bool
contains(bool (*fn)(const T*,void*), void* d) const; 
iterator
end();
const_iterator
end() const;
size_type
entries() const; 
T*
find(const T* a);
const T*
find(const T* a) const; 
const T*
find(bool (*fn)(const T*,void*), void* d) const;
reference
first();
const_reference
first() const;
size_type
index(const T* a) const; 
size_type
index(bool (*fn)(const T*,void*), void* d) const;
size_type
insert(const list<T*,A<T*> >& a); 
bool
insert(T* a);
bool
isEmpty() const; 
bool
isSorted() const; 
T*&
last();
T* const&
last() const;
size_type
merge(const RWTPtrSortedDlist<T,C,A>& dl); 
size_type
occurrencesOf(const T* a) const; 
size_type
occurrencesOf(bool (*fn)(const T*,void*), void* d) const;
T*
remove(const T* a); 
T*
remove(bool (*fn)(const T*,void*), void* d);
size_type
removeAll(const T* a); 
size_type
removeAll(bool (*fn)(const T*,void*), void* d);
T*
removeAt(size_type i); 
T*
removeFirst();
T*
removeLast();
const list<T*,A<T*> >&
std() const; 

Related Global Operators

RWvostream&
operator<<(RWvostream& strm, 
           const RWTPtrSortedDlist<T,C,A>& coll);
RWFile&
operator<<(RWFile& strm, 
           const RWTPtrSortedDlist<T,C,A>& coll);
RWvistream&
operator>>(RWvistream& strm, RWTPtrSortedDlist<T,C,A>& coll); 
RWFile&
operator>>(RWFile& strm, RWTPtrSortedDlist<T,C,A>& coll);
RWvistream&
operator>>(RWvistream& strm, RWTPtrSortedDlist<T,C,A>*& p);
RWFile&
operator>>(RWFile& strm, RWTPtrSortedDlist<T,C,A>*& p);


Previous fileTop of DocumentContentsIndex pageNext file

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.