Represents a group of ordered items. More...
#include <rw/sortvec.h>
Public Member Functions | |
RWSortedVector () | |
RWSortedVector (size_t size) | |
RWSortedVector (const RWSortedVector &sv) | |
RWSortedVector (RWSortedVector &&sv) | |
virtual const RWCollectable * | at (size_t) const |
virtual RWCollectable * | copy () const |
virtual size_t | index (const RWCollectable *target) const |
virtual RWCollectable * | insert (RWCollectable *c) |
virtual RWClassID | isA () const |
virtual bool | isEqual (const RWCollectable *a) const |
virtual RWCollectable * | newSpecies () const |
virtual size_t | occurrencesOf (const RWCollectable *target) const |
const RWCollectable * | operator() (size_t i) const |
RWSortedVector & | operator= (const RWSortedVector &sv) |
RWSortedVector & | operator= (RWSortedVector &&sv) |
bool | operator== (const RWSortedVector &sv) const |
const RWCollectable * | operator[] (size_t i) const |
Public Member Functions inherited from RWOrdered | |
RWOrdered () | |
RWOrdered (size_t size) | |
RWOrdered (const RWOrdered &o) | |
RWOrdered (RWOrdered &&o) | |
virtual void | apply (RWapplyCollectable ap, void *x) |
virtual void | clear () |
virtual size_t | entries () const |
virtual RWCollectable * | find (const RWCollectable *target) const |
virtual RWCollectable * | first () const |
virtual bool | isEmpty () const |
virtual RWCollectable * | last () const |
virtual size_t | newCapacity (size_t) const |
virtual RWConstIterator * | newConstIterator () const |
virtual RWIterator * | newIterator () |
RWCollectable *& | operator() (size_t i) |
RWOrdered & | operator= (const RWOrdered &o) |
RWOrdered & | operator= (RWOrdered &&o) |
bool | operator== (const RWOrdered &od) const |
RWCollectable *& | operator[] (size_t i) |
RWCollectable * | pop () |
void | push (RWCollectable *c) |
virtual RWCollectable * | remove (const RWCollectable *target) |
RWCollectable * | removeAt (size_t index) |
void | swap (RWOrdered &o) |
RWCollectable * | top () const |
Public Member Functions inherited from RWCollection | |
virtual | ~RWCollection () |
RWBag | asBag () const |
RWBinaryTree | asBinaryTree () const |
RWOrdered | asOrderedCollection () const |
RWSet | asSet () const |
RWBinaryTree | asSortedCollection () const |
virtual RWspace | binaryStoreSize () const |
virtual void | clearAndDestroy () |
virtual bool | contains (const RWCollectable *target) const |
void | operator+= (const RWCollection &c) |
void | operator-= (const RWCollection &c) |
virtual void | removeAndDestroy (const RWCollectable *target) |
virtual void | restoreGuts (RWvistream &) |
virtual void | restoreGuts (RWFile &) |
virtual void | saveGuts (RWvostream &) const |
virtual void | saveGuts (RWFile &) const |
RWCollection * | select (RWtestCollectable tst, void *vp) const |
Public Member Functions inherited from RWCollectable | |
virtual | ~RWCollectable () |
virtual int | compareTo (const RWCollectable *) const |
virtual unsigned | hash () const |
RWspace | recursiveStoreSize () const |
RWStringID | stringID () const |
Private Member Functions | |
virtual RWCollectable * | append (RWCollectable *a) |
virtual RWCollectable *& | at (size_t) |
virtual RWCollectable * | insertAt (size_t, RWCollectable *) |
virtual RWCollectable * | prepend (RWCollectable *) |
Related Functions | |
(Note that these are not member functions.) | |
typedef RWOrderedConstIterator | RWSortedVectorConstIterator |
typedef RWOrderedIterator | RWSortedVectorIterator |
Related Functions inherited from RWCollection | |
typedef void(* | RWapplyCollectable) (RWCollectable *, void *) |
typedef bool(* | RWtestCollectable) (const RWCollectable *, const void *) |
typedef bool(* | RWtestCollectablePair) (const RWCollectable *, const RWCollectable *, const void *) |
Additional Inherited Members | |
Static Public Member Functions inherited from RWCollectable | |
static RWClassID | classID (const RWStringID &name) |
static RWClassID | classIsA () |
static bool | isAtom (RWClassID id) |
static RWspace | nilStoreSize () |
Static Public Attributes inherited from RWCollection | |
static size_t | DEFAULT_CAPACITY |
Class RWSortedVector represents a group of ordered items, internally sorted by the compareTo() function and accessible by an index number. Duplicates are allowed. An object stored by RWSortedVector must inherit from the abstract base class RWCollectable. An insertion sort is used to maintain the vector in sorted order.
Because class RWSortedVector is implemented as a vector of pointers, traversing the collection is more efficient than using RWBinaryTree. However, insertions are slower in the center of the collection.
Program output:
RWSortedVector::RWSortedVector | ( | ) |
Constructs an empty RWSortedVector that has an initial capacity of RWCollection::DEFAULT_CAPACITY items. The capacity is increased automatically as needed.
RWSortedVector::RWSortedVector | ( | size_t | size | ) |
Constructs an empty RWSortedVector that has an initial capacity of size items. The capacity is increased automatically as needed.
|
inline |
Copy constructor. Makes a shallow copy of sv.
|
inline |
Move constructor. The constructed RWSortedVector takes ownership of the data owned by sv.
|
privatevirtual |
|
virtual |
Allows access to the i th element of the collection. The return value cannot be used as an lvalue. The index i must be between zero and the number of items in the collection less one, or an exception of type RWBoundsErr will be thrown.
Reimplemented from RWOrdered.
|
privatevirtual |
Allows access to the i th element of the collection. The return value can be used as an lvalue. The index i must be between zero and the number of items in the collection less one, or the function throws an exception of type RWBoundsErr.
Reimplemented from RWOrdered.
|
virtual |
Returns a new, copy-constructed object of the same type as self. The caller is responsible for deleting the object.
Reimplemented from RWOrdered.
|
virtual |
Performs a binary search to return the index of the first item that compares equal to the target item, or RW_NPOS if no such item can be found.
Reimplemented from RWOrdered.
|
virtual |
|
privatevirtual |
Adds a new item to the collection at position indx. The item previously at position i
is moved to i+1
, etc. The index indx must be between 0
and the number of items in the collection, or an exception of type RWBoundsErr will be thrown.
Reimplemented from RWOrdered.
|
virtual |
Returns __RWSORTEDVECTOR
, i.e. a class identifier, that identifies this object's class.
Reimplemented from RWOrdered.
|
virtual |
Returns true
or false
based on operator==().
Reimplemented from RWOrdered.
|
virtual |
Returns a new, default-constructed object of the same type as self. The caller is responsible for deleting the object.
Reimplemented from RWOrdered.
|
virtual |
|
inline |
Returns the i th element in the collection. Bounds checking is enabled by defining the preprocessor directive RWBOUNDS_CHECK
before including the header file <rw/sortvec.h>
. In this case, if i is out of range, an exception of type RWBoundsErr is thrown. The return value cannot be used as an lvalue.
|
inline |
Assignment operator. Makes a shallow copy of o.
|
inline |
Move assignment. Self takes ownership of the data owned by sv.
|
inline |
Returns true
if for every item in self, the corresponding item in sv at the same index isEqual(). The two collections must also have the same number of members.
|
inline |
Returns the i th element in the collection. If i is out of range, an exception of type RWBoundsErr is thrown. The return value cannot be used as an lvalue.
|
privatevirtual |
|
related |
RWSortedVectorConstIterator is a typedef for RWOrderedConstIterator. For information on how to use it, please see RWOrderedConstIterator.
|
related |
RWSortedVectorIterator is a typedef for RWOrderedIterator. For information on how to use it, please see RWOrderedIterator.
Copyright © 2021 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved. |