RWGVector(3C++) RWGVector(3C++)
NameRWGVector(val) - Rogue Wave library class
Synopsis
#include <rw/gvector.h>
declare(RWGVector,val)
implement(RWGVector,val)
RWGVector(val) a; // A Vector of val's.
Description
Class RWGVector(val) represents a group of ordered elements, accessible
by an index. Duplicates are allowed. This class is implemented as an
array. Objects of type RWGVector(val) are declared with macros defined
in the standard C++ header file <generic.h>. Note that it is a value-
based collection: items are copied in and out of the collection. The
class val must have:
a default constructor;
well-defined copy semantics (val::val(const val&) or equiv.);
well-defined assignment semantics (val::operator=(const val&) or
equivalent).
Persistence
For each type of RWGVector, you must include one (and only one) call to
the macro implement, somewhere in your code. None
Example
#include <rw/gvector.h>
#include <rw/rwdate.h>
#include <rw/rstream.h>
declare(RWGVector, RWDate) /* Declare a vector of dates */
implement(RWGVector, RWDate) /* Implement a vector of dates */
Page 1
RWGVector(3C++) RWGVector(3C++)
main() {
RWGVector(RWDate)oneWeek(7);
for (int i=1; i<7; i++)
oneWeek(i) = oneWeek(0) + i;
for (i=0; i<7; i++)
cout << oneWeek(i) << endl;
return 0;
}
Program output:
04/12/93
04/13/93
04/14/93
04/15/93
04/16/93
04/17/93
Public Constructors
04/18/93
RWGVector(val)();
Construct an empty vector.
RWGVector(val)(size_t n);
Construct a vector with length n. The initial values of the elements can
(and probably will) be garbage.
RWGVector(val)(size_t n, val v);
Construct a vector with length n. Each element is assigned the value v.
Page 2
RWGVector(3C++) RWGVector(3C++)
RWGVector(val)(RWGVector(val)& s);
Copy constructor. The entire vector is copied, including all embedded
values.
Public Member OperatorsRWGVector(val)&
operator=(RWGVector(val)& s);
Assignment operator. The entire vector is copied.
RWGVector(val)&
operator=(val v);
Sets all elements of self to the value v.
val
operator()(size_t i) const;
val&
operator()(size_t i);
Return the i'th element in the vector. The index i must be between zero
and the length of the vector less one. No bounds checking is performed.
The second variant can be used as an lvalue.
val
operator[](size_t i) const;
val&
operator[](size_t i);
Return the ith element in the vector. The index i must be between zero
and the length of the vector less one. Bounds checking is performed.
Public Member Functions
const val*
data() const;
Returns a pointer to the raw data of self. Should be used with care.
size_t
length() const;
Returns the length of the vector.
Page 3
RWGVector(3C++) RWGVector(3C++)
void
reshape(size_t n);
Resize the vector. If the vector shrinks, it will be truncated. If the
vector grows, then the value of the additional elements will be
undefined.
Page 4