-
Notifications
You must be signed in to change notification settings - Fork 0
array
template <class value_type> struct array
This structure implements dynamic array.
-
typedef value_type type
so that generic wrappers can access this containersvalue_type
- array::iterator
- array::const_iterator
-
value_type *data
is a pointer to the data in memory. -
int count
keeps track of the number of elements stored in this array. -
int capacity
keeps track of the number of elements we can store at this location in memory.
array()
The default constructor, initializes data
to NULL
, count
to 0
and capacity
to 0
.
array(const value_type &value)
array(const container_type &store)
array(const array<value_type> &store)
Copy the contents of another container into this array.
array(iterator left, iterator right)
array(const_iterator left, const_iterator right)
array(typename container_type::iterator left, typename container_type::iterator right)
array(typename container_type::const_iterator left, typename container_type::const_iterator right)
copy the elements within the iterator range [left,right) into this array.
int size()
Returns count
.
iterator begin()
const_iterator begin() const
Returns an iterator to the first element.
iterator end()
const_iterator end() const
returns an iterator to one after the last element.
iterator rbegin()
const_iterator rbegin() const
returns an iterator to the last element.
iterator rend()
const_iterator rend() const
returns an iterator to one before the first element.
iterator at(int i)
const_iterator at(int i) const
returns an iterator to the i
th element.
value_type &front()
Returns the value of the first element.
value_type &back()
Returns the value of the last element.
value_type &get(int i)
Returns the value of the i
th element.
value_type *ptr(int i)
Returns a pointer to the i
th element.
value_type &operator[](int i)
Returns the value of the i
th element.
slice<array<value_type> > deref()
wraps this array with a slice. This is particularly useful if an algorithm gives you a container filled with iterators. You can convert it into a slice with a single call to this function.
array<int> idx()
This is orthogonal to deref()
. If this container is filled with iterators, it returns the index of each iterator.
slice<range<iterator> > sub(int start, int end)
slice<range<const_iterator> > sub(int start, int end) const
array<value_type> subcpy(int start, int end) const
returns a slice or copy of the elements within the range [start
,end
).
slice<range<iterator> > sub(int start)
slice<range<const_iterator> > sub(int start) const
array<value_type> subcpy(int start) const
returns a slice or copy of this container of the elements after start
.
slice<array<iterator> > sub()
slice<array<const_iterator> > sub() const
array<value_type> subcpy()
returns a slice or copy of all the elements in this container.
returns a slice of all the elements within the range [start
,end
) of a range container.
returns a slice of all the elements within the range [start
,end
) of a range container.
uses the values of the range container as indices into c
. Returns another range container with the indexed value from c
.
swaps the contents of this range container with another.
sets the contents of this range container equal the contents of another.
bool operator==(range<value_type1> s1, range<value_type2> s2)
bool operator!=(range<value_type1> s1, range<value_type2> s2)
bool operator<(range<value_type1> s1, range<value_type2> s2)
bool operator>(range<value_type1> s1, range<value_type2> s2)
bool operator<=(range<value_type1> s1, range<value_type2> s2)
bool operator>=(range<value_type1> s1, range<value_type2> s2)
Compares two range containers by comparing start
followed by finish
.
bool operator==(range<value_type1> s1, core::slice<container2> s2)
bool operator!=(range<value_type1> s1, core::slice<container2> s2)
bool operator<(range<value_type1> s1, core::slice<container2> s2)
bool operator>(range<value_type1> s1, core::slice<container2> s2)
bool operator<=(range<value_type1> s1, core::slice<container2> s2)
bool operator>=(range<value_type1> s1, core::slice<container2> s2)
bool operator==(core::slice<container1> s1, range<value_type2> s2)
bool operator!=(core::slice<container1> s1, range<value_type2> s2)
bool operator<(core::slice<container1> s1, range<value_type2> s2)
bool operator>(core::slice<container1> s1, range<value_type2> s2)
bool operator<=(core::slice<container1> s1, range<value_type2> s2)
bool operator>=(core::slice<container1> s1, range<value_type2> s2)
Compares a range container to a generic slice by calling compare()
.
#include <std/ascii_stream.h>
#include <std/array.h>
using namespace core;
int main()
{
array<int> arr = range<int>(0, 10);
cout << arr << endl;
return 0;
}