class Vector<ValueType>
Constructor | ||
O(1) | Initializes a new empty vector. | |
O(N) | Initializes a new vector storing n copies of the given value. | |
Methods | ||
O(1) | Adds a new value to the end of this vector. | |
O(1) | Removes all elements from this vector. | |
O(N) | Returns true if the two vectors contain the same elements in the same order. |
|
O(1) | Returns the element at the specified index in this vector. | |
O(N) | Inserts value into this vector at the specified index. |
|
O(1) | Returns true if this vector contains no elements. |
|
O(N) | Calls the specified function on each element of this vector in order of ascending index. | |
O(N) | Removes the element at the specified index from this vector. | |
O(1) | Replaces the element at the specified index in this vector with value . |
|
O(1) | Returns the number of elements in this vector. | |
O(NlogN) | Rearranges the elements in this vector into sorted order. | |
O(N) | Returns a new vector containing elements from a sub-range of this vector. | |
O(N) | Returns a printable string representation of this vector. | |
Operators | ||
O(N) | Iterates through the elements in a vector in order of ascending index. | |
O(1) | Overloads [] to select elements from this vector. |
|
O(N) | Concatenates two vectors. | |
O(N) | Adds all of the elements from vec2 to vec1 . |
|
O(1) | Adds the single specified value to vec . |
|
O(1) | Adds multiple individual values to vec . |
|
O(N) | Returns true if vec1 and vec2 contain the same elements. |
|
O(N) | Returns true if vec1 and vec2 are different. |
|
O(N) | Outputs the contents of the vector to the given output stream. | |
O(N) | Reads the contents of the given input stream into the vector. |
Vector(); Vector(int n, ValueType value = ValueType());
n
elements, each of which is initialized to value
;
if value
is missing, the elements are initialized
to the default value for the type. You may also provide an initializer
list of values. The newly created vector will contain those values in order.
Usage:
Vector<ValueType> vec; Vector<ValueType> vec(n, value); Vector<ValueType> vec = { value1, value2, value3 };
void add(const ValueType& value);
Usage:
vec.add(value);
void clear();
Usage:
vec.clear();
bool equals(const Vector& v) const;
true
if the two vectors contain exactly the same element values in the same order.
Identical in behavior to the ==
operator.
Usage:
if (vec1.equals(vec2)) ...
const ValueType& get(int index) const;
Usage:
ValueType val = vec.get(index);
void insert(int index, const ValueType& value);
Usage:
vec.insert(0, value);
bool isEmpty() const;
true
if this vector contains no elements.
Usage:
if (vec.isEmpty()) ...
void mapAll(std::function<void (const ValueType&)> fn) const;
Usage:
vec.mapAll(fn);
ValueType remove(int index);
Usage:
ValueType val = vec.remove(index);
void set(int index, const ValueType& value);
Usage:
vec.set(index, value);
int size() const;
Usage:
int nElems = vec.size();
void sort();
Usage:
vec.sort();
Vector subList(int start, int length) const; Vector subList(int start) const;
Usage:
Vector<ValueType> sub = vec.subList(start, length);
string toString() const;
"{value1, value2, value3}"
.
Usage:
string str = vec.toString();
for (ValueType elem : vec) for (ValueType& elem : vec)
Usage:
for (ValueType elem : vec) { cout << elem << endl; } for (ValueType& elem : vec) { // if reference type, elements are mutable elem *= 2; }
ValueType& operator[](int index); const ValueType& operator[](int index) const;
[]
to select elements from this vector.
This extension enables the use of traditional array notation to
get or set individual elements. This method signals an error if
the index is outside the array range. The file supports two
versions of this operator, one for const
vectors and
one for mutable vectors.
Usage:
vec[index]
Vector operator+(const Vector& vec2) const;
Usage:
vec1 + vec2
Vector& operator+=(const Vector& vec2); Vector& operator+=(ValueType value);
vec2
(or the single
specified value) to vec1
. As a convenience, the
Vector
package also overloads the comma operator so
that it is possible to initialize a vector like this:
Vector<int> digits; digits += 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;
Usage:
vec1 += vec2; vec1 += value;
ostream& operator<<(const Vector& vec);Outputs the contents of
vec
to the given output stream.
The output is in the form {value1, value2, value3}
where elements are listed in order of ascending index.
Usage:
cout << vec << endl;
istream& operator>>(Vector& vec);Reads the contents of the given input stream into
vec
. Any previous
contents of the vector are replaced.
The input is expected to be in the form {value1, value2, value3}
where elements are listed in order of ascending index. If unable to read a proper
vector from the stream, the operation results in a stream fail state.
Usage:
if (infile >> vec) ...