A dynamic array class. More...
#include <array.hh>
Public Types | |
typedef Function_v2v< void > | category |
typedef T | element |
Element associated type. | |
typedef mln::util::array< T > | exact_t |
typedef T | result |
Returned value types. | |
typedef std::vector< T >::reference | mutable_result |
typedef array_fwd_iter< T > | fwd_eiter |
Iterator typesForward iterator associated type. | |
typedef array_bkd_iter< T > | bkd_eiter |
Backward iterator associated type. | |
typedef fwd_eiter | eiter |
Iterator associated type. | |
Public Member Functions | |
array< T > & | append (const T &elt) |
Add the element elt at the end of this array. | |
template<typename U > | |
array< T > & | append (const array< U > &other) |
Add the elements of other at the end of this array. | |
void | clear () |
Empty the array. | |
void | fill (const T &value) |
Fill the whole array with value value . | |
std::vector< T > & | hook_std_vector_ () |
Hook to the mutable std::vector of elements. | |
bool | is_empty () const |
Test if the array is empty. | |
std::size_t | memory_size () const |
Return the size of this array in memory. | |
unsigned | nelements () const |
Return the number of elements of the array. | |
const T & | operator() (unsigned i) const |
Return the i-th element of the array. | |
mutable_result | operator() (unsigned i) |
Return the i-th element of the array. | |
const T & | operator[] (unsigned i) const |
Return the i-th element of the array. | |
mutable_result | operator[] (unsigned i) |
Return the i-th element of the array. | |
void | reserve (unsigned n) |
Reserve memory for n elements. | |
void | resize (unsigned n, const T &value) |
Resize this array to n elements with value as value. | |
void | resize (unsigned n) |
Resize this array to n elements. | |
unsigned | size () const |
Return the number of elements of the array. | |
const std::vector< T > & | std_vector () const |
Return the corresponding std::vector of elements. | |
array () | |
ConstructorsConstructor without arguments. | |
array (unsigned n) | |
Construct a new array and resize it to elements. | |
array (unsigned n, const T &value) | |
Construct a new array, resize it to elements and fill it with default_value . | |
Private Attributes | |
std::vector< T > | v_ |
A dynamic array class.
Elements are stored by copy. Implementation is lazy.
The parameter T
is the element type, which shall not be const-qualified.
typedef array_bkd_iter<T> mln::util::array< T >::bkd_eiter |
Backward iterator associated type.
typedef Function_v2v<void> mln::Function_v2v< mln::util::array< T > >::category [inherited] |
Reimplemented from mln::Function< mln::util::array< T > >.
typedef fwd_eiter mln::util::array< T >::eiter |
Iterator associated type.
typedef T mln::util::array< T >::element |
Element associated type.
typedef mln::util::array< T > mln::Object< mln::util::array< T > >::exact_t [inherited] |
typedef array_fwd_iter<T> mln::util::array< T >::fwd_eiter |
Iterator typesForward iterator associated type.
typedef std::vector<T>::reference mln::util::array< T >::mutable_result |
Reimplemented from mln::Function_v2v< mln::util::array< T > >.
typedef T mln::util::array< T >::result |
Returned value types.
Related to the Function_v2v concept.
mln::util::array< T >::array | ( | ) | [inline] |
ConstructorsConstructor without arguments.
mln::util::array< T >::array | ( | unsigned | n | ) | [inline] |
Construct a new array and resize it to
elements.
mln::util::array< T >::array | ( | unsigned | n, | |
const T & | value | |||
) | [inline] |
Construct a new array, resize it to
elements and fill it with default_value
.
array< T > & mln::util::array< T >::append | ( | const T & | elt | ) | [inline] |
Add the element elt
at the end of this array.
References mln::util::array< T >::v_.
Referenced by mln::convert::over_load::from_to_(), mln::p_mutable_array_of< S >::insert(), mln::io::plot::load(), mln::graph::attribute::representative_t::new_component_from_vertex(), mln::graph::attribute::card_t::new_component_from_vertex(), Functor::process_vertex(), mln::make::impl::generic::rag_and_labeled_wsl(), mln::data::impl::generic::sort_offsets_decreasing(), and mln::data::impl::generic::sort_offsets_increasing().
array< T > & mln::util::array< T >::append | ( | const array< U > & | other | ) | [inline] |
Add the elements of other
at the end of this array.
References mln::util::array< T >::is_empty(), mln::util::array< T >::std_vector(), and mln::util::array< T >::v_.
void mln::util::array< T >::clear | ( | ) | [inline] |
Empty the array.
All elements contained in the array are destroyed.
References mln::util::array< T >::is_empty(), and mln::util::array< T >::v_.
Referenced by mln::p_mutable_array_of< S >::clear(), and mln::io::plot::load().
void mln::util::array< T >::fill | ( | const T & | value | ) | [inline] |
Fill the whole array with value value
.
References mln::util::array< T >::v_.
Referenced by mln::graph::attribute::representative_t::init(), mln::graph::attribute::card_t::init(), and Functor::init().
std::vector< T > & mln::util::array< T >::hook_std_vector_ | ( | ) | [inline] |
Hook to the mutable std::vector of elements.
References mln::util::array< T >::v_.
Referenced by mln::data::impl::generic::sort_offsets_decreasing(), and mln::data::impl::generic::sort_offsets_increasing().
bool mln::util::array< T >::is_empty | ( | ) | const [inline] |
Test if the array is empty.
References mln::util::array< T >::nelements().
Referenced by mln::util::array< T >::append(), mln::util::array< T >::clear(), mln::make::image3d(), mln::p_mutable_array_of< S >::is_empty_(), and mln::io::pnms::load().
std::size_t mln::util::array< T >::memory_size | ( | ) | const [inline] |
Return the size of this array in memory.
References mln::util::array< T >::nelements().
Referenced by mln::p_mutable_array_of< S >::memory_size().
unsigned mln::util::array< T >::nelements | ( | ) | const [inline] |
Return the number of elements of the array.
References mln::util::array< T >::v_.
Referenced by mln::canvas::morpho::impl::attribute_filter_fastest(), mln::canvas::impl::distance_front_fastest(), mln::canvas::impl::distance_geodesic_fastest(), mln::labeling::fill_holes(), mln::morpho::watershed::impl::flooding_fastest(), mln::convert::over_load::from_to_(), mln::p_mutable_array_of< S >::has(), mln::make::image3d(), mln::util::array< T >::is_empty(), mln::canvas::impl::labeling_sorted_fastest(), mln::canvas::impl::labeling_video_fastest(), mln::io::pnms::load(), mln::util::array< T >::memory_size(), mln::labeling::n_max(), mln::p_mutable_array_of< S >::nelements(), mln::util::operator<<(), mln::p_mutable_array_of< S >::operator[](), mln::util::array< T >::operator[](), mln::make::impl::generic::rag_and_labeled_wsl(), mln::io::plot::save(), and mln::util::array< T >::size().
const T & mln::util::array< T >::operator() | ( | unsigned | i | ) | const [inline] |
Return the i-th
element of the array.
array< T >::mutable_result mln::util::array< T >::operator() | ( | unsigned | i | ) | [inline] |
Return the i-th
element of the array.
const T & mln::util::array< T >::operator[] | ( | unsigned | i | ) | const [inline] |
Return the i-th
element of the array.
References mln::util::array< T >::nelements(), and mln::util::array< T >::v_.
array< T >::mutable_result mln::util::array< T >::operator[] | ( | unsigned | i | ) | [inline] |
Return the i-th
element of the array.
References mln::util::array< T >::nelements(), and mln::util::array< T >::v_.
void mln::util::array< T >::reserve | ( | unsigned | n | ) | [inline] |
Reserve memory for n
elements.
References mln::util::array< T >::v_.
Referenced by mln::convert::over_load::from_to_(), mln::p_mutable_array_of< S >::reserve(), mln::data::impl::generic::sort_offsets_decreasing(), and mln::data::impl::generic::sort_offsets_increasing().
void mln::util::array< T >::resize | ( | unsigned | n, | |
const T & | value | |||
) | [inline] |
Resize this array to n
elements with value
as value.
References mln::util::array< T >::v_.
void mln::util::array< T >::resize | ( | unsigned | n | ) | [inline] |
Resize this array to n
elements.
References mln::util::array< T >::v_.
Referenced by mln::graph::attribute::representative_t::init(), mln::graph::attribute::card_t::init(), and Functor::init().
unsigned mln::util::array< T >::size | ( | ) | const [inline] |
Return the number of elements of the array.
Added for compatibility with fun::i2v::array.
References mln::util::array< T >::nelements().
Referenced by mln::value::lut_vec< S, T >::lut_vec().
const std::vector< T > & mln::util::array< T >::std_vector | ( | ) | const [inline] |
Return the corresponding std::vector of elements.
References mln::util::array< T >::v_.
Referenced by mln::util::array< T >::append(), mln::value::lut_vec< S, T >::lut_vec(), and mln::util::operator==().
std::vector<T> mln::util::array< T >::v_ [private] |
Referenced by mln::util::array< T >::append(), mln::util::array< T >::clear(), mln::util::array< T >::fill(), mln::util::array< T >::hook_std_vector_(), mln::util::array< T >::nelements(), mln::util::array< T >::operator[](), mln::util::array< T >::reserve(), mln::util::array< T >::resize(), and mln::util::array< T >::std_vector().