Base object that represent array.
Public Aliases | |
using | value_type |
Represents the array value type. | |
using | allocator_type |
Represents the array allocator type. | |
using | base_type |
Represents the array base type. | |
using | size_type |
Represents the array size type (usually xtd::size). | |
using | difference_type |
Represents the array difference type (usually xtd::ptrdiff). | |
using | reference |
Represents the reference of array value type. | |
using | const_reference |
Represents the const reference of array value type. | |
using | pointer |
Represents the pointer of array value type. | |
using | const_pointer |
Represents the const pointer of array value type. | |
using | iterator |
Represents the iterator of array value type. | |
using | const_iterator |
Represents the const iterator of array value type. | |
using | reverse_iterator |
Represents the reverse iterator of array value type. | |
using | const_reverse_iterator |
Represents the const reverse iterator of array value type. | |
Public Fields | |
static constexpr size_type | npos |
This is a special value equal to the maximum value representable by the type xtd::size. | |
Public Properties | |
virtual reference | back () |
Returns a reference to the last element in the container. | |
virtual const_reference | back () const |
Returns a reference to the last element in the container. | |
const_iterator | begin () const noexcept override |
Returns an iterator to the first element of the enumarable. | |
iterator | begin () noexcept override |
Returns an iterator to the first element of the enumarable. | |
const_iterator | cbegin () const noexcept override |
Returns an iterator to the first element of the enumarable. | |
const_iterator | cend () const noexcept override |
Returns an iterator to the element following the last element of the enumarable. | |
size_type | count () const noexcept override |
Gets the number of elements contained in the xtd::array <type_t>. | |
virtual const_reverse_iterator | crbegin () const noexcept |
Returns a reverse iterator to the first element of the reversed vector. It corresponds to the last element of the non-reversed vector. If the vector is empty, the returned iterator is equal to xtd::array::rend(). | |
virtual const_reverse_iterator | crend () const noexcept |
Returns a reverse iterator to the element following the last element of the reversed vector. It corresponds to the element preceding the first element of the non-reversed vector. This element acts as a placeholder, attempting to access it results in undefined behavior. | |
virtual pointer | data () noexcept |
Returns pointer to the underlying array serving as element storage. | |
virtual const_pointer | data () const noexcept |
Returns pointer to the underlying array serving as element storage. | |
virtual bool | empty () const noexcept |
Checks if the container has no elements, i.e. whether xtd::array::begin() == xtd::array::end(). | |
const_iterator | end () const noexcept override |
Returns an iterator to the element following the last element of the enumarable. | |
iterator | end () noexcept override |
Returns an iterator to the element following the last element of the enumarable. | |
virtual reference | front () |
Returns a reference to the first element in the container. | |
virtual const_reference | front () const |
Returns a reference to the first element in the container. | |
bool | is_fixed_size () const noexcept override |
bool | is_read_only () const noexcept override |
bool | is_synchronized () const noexcept override |
virtual const base_type & | items () const noexcept |
Returns the underlying base type items. | |
virtual base_type & | items () noexcept |
Returns the underlying base type items. | |
virtual size_type | length () const noexcept |
Gets a size that represents the total number of elements in all the dimensions of the array. | |
virtual xtd::int64 | long_length () |
Gets a 64-bit integer that represents the total number of elements in all the dimensions of the array. | |
virtual size_type | max_size () const noexcept |
Returns the maximum number of elements the container is able to hold due to system or library implementation limitations, i.e. std::distance(xtd::array::begin(), xtd::array::end()) for the largest container. | |
virtual size_type | rank () const noexcept |
Gets the rank (number of dimensions) of the array. | |
virtual reverse_iterator | rbegin () noexcept |
Returns a reverse iterator to the first element of the reversed vector. It corresponds to the last element of the non-reversed vector. If the vector is empty, the returned iterator is equal to xtd::array::rend(). | |
virtual const_reverse_iterator | rbegin () const noexcept |
Returns a reverse iterator to the first element of the reversed vector. It corresponds to the last element of the non-reversed vector. If the vector is empty, the returned iterator is equal to xtd::array::rend(). | |
virtual reverse_iterator | rend () noexcept |
Returns a reverse iterator to the element following the last element of the reversed vector. It corresponds to the element preceding the first element of the non-reversed vector. This element acts as a placeholder, attempting to access it results in undefined behavior. | |
virtual const_reverse_iterator | rend () const noexcept |
Returns a reverse iterator to the element following the last element of the reversed vector. It corresponds to the element preceding the first element of the non-reversed vector. This element acts as a placeholder, attempting to access it results in undefined behavior. | |
virtual size_type | size () const noexcept |
Returns the number of elements in the container, i.e. std::distance(xtd::array::begin(), xtd::array::end()). | |
const xtd::object & | sync_root () const noexcept override |
Public Methods | |
virtual reference | at (size_type index) |
Returns a reference to the element at specified location pos, with bounds checking. | |
virtual const_reference | at (size_type index) const |
Returns a reference to the element at specified location pos, with bounds checking. | |
bool | contains (const type_t &value) const noexcept override |
Determines whether an element is in the array. | |
void | copy_to (xtd::array< type_t > &array, size_type index) const override |
void | copy_to (xtd::array< type_t > &array, xtd::int64 index) const |
Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. The index is specified as a 64-bit integer. | |
bool | equals (const object &obj) const noexcept override |
Determines whether the specified object is equal to the current object. | |
bool | equals (const basic_array &rhs) const noexcept override |
virtual void | fill (const value_type &value) noexcept |
Assigns the value to all elements in the container. | |
xtd::collections::generic::enumerator< value_type > | get_enumerator () const noexcept override |
constexpr size_type | get_length (size_type dimension) const |
Gets the total number of elements in all the dimensions of the array. | |
constexpr xtd::int64 | get_long_length (size_type dimension) const |
Gets a 64-bit integer that represents the total number of elements in all the dimensions of the array. | |
constexpr size_type | get_lower_bound (size_type dimension) const |
Gets the lower bound of the specified dimension in the array. | |
constexpr size_type | get_upper_bound (size_type dimension) const |
Gets the upper bound of the specified dimension in the array. | |
const value_type & | get_value (const xtd::array< size_type > &indexes) const |
Gets the value at the specified position in the multidimensional array. The indexes are specified as 32-bit integers array. | |
size_type | index_of (const type_t &value) const noexcept override |
Determines the index of a specific item in the xtd::array <type_t>. | |
void | resize (size_type new_size, value_type value) |
Resizes the container to contain count elements, does nothing if count == size(). / @param new_size The new size of the container. / @exception xtd::argument_out_of_range_exception If new_sizeis outside greather than xtd::array::max_size. / @remarks If the current size is greater than count, the container is reduced to its first countelements. / @remarks If the current size is less than count`, additional default-inserted elements are appended. void resize(size_type new_size) {resize(new_size, value_type {});}. | |
void | set_value (const type_t &value, const xtd::array< size_type > &indexes) |
Sets a value to the element at the specified position in the multidimensional array. | |
virtual void | swap (basic_array &other) noexcept |
Exchanges the contents and capacity of the container with those of other. Does not invoke any move, copy, or swap operations on individual elements. | |
xtd::string | to_string () const noexcept override |
Returns a xtd::string that represents the current object. | |
Public Operators | |
basic_array & | operator= (const basic_array &other) |
Copy assignment operator. Replaces the contents with a copy of the contents of other. | |
basic_array & | operator= (basic_array &&other) noexcept=default |
Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in other is moved from other into this container). other is in a valid but unspecified state afterwards. | |
basic_array & | operator= (std::initializer_list< type_t > &items) |
Replaces the contents with those identified by initializer list ilist. | |
const_reference | operator[] (size_type index) const override |
Returns a reference to the element at specified location index. | |
reference | operator[] (size_type index) override |
Returns a reference to the element at specified location index. | |
operator const base_type & () const noexcept | |
Returns a reference to the underlying base type. | |
operator base_type & () noexcept | |
Returns a reference to the underlying base type. | |
type_t & | operator() (const xtd::array< size_type > &indexes) |
Gets the value at the specified position in the multidimensional array. The indexes are specified as a 32-bit integer array. | |
const type_t & | operator() (const xtd::array< size_type > &indexes) const |
Gets the value at the specified position in the multidimensional array. The indexes are specified as a 32-bit integer array. | |
Public Static Methods | |
static size_type | index_of (const basic_array &array, const value_type &value) noexcept |
Determines the index of a specific item in the array specified. | |
static size_type | index_of (const basic_array &array, const value_type &value, size_type index) |
Determines the index of a specific item in the array specified. | |
static size_type | index_of (const basic_array &array, const value_type &value, size_type index, size_type count) |
Determines the index of a specific item in the array specified. | |
static void | reverse (basic_array &array) noexcept |
Reverses the order of the elements in the entire xtd::basic_array. | |
static void | reverse (basic_array &array, size_type index, size_type count) |
Reverses the order of the elements in the specified range. | |
Additional Inherited Members | |
object ()=default | |
Create a new instance of the ultimate base class object. | |
virtual xtd::size | get_hash_code () const noexcept |
Serves as a hash function for a particular type. | |
virtual type_object | get_type () const noexcept |
Gets the type of the current instance. | |
template<class object_t> | |
xtd::unique_ptr_object< object_t > | memberwise_clone () const |
Creates a shallow copy of the current object. | |
template<class object_a_t, class object_b_t> | |
static bool | equals (const object_a_t &object_a, const object_b_t &object_b) noexcept |
Determines whether the specified object instances are considered equal. | |
template<class object_a_t, class object_b_t> | |
static bool | reference_equals (const object_a_t &object_a, const object_b_t &object_b) noexcept |
Determines whether the specified object instances are the same instance. | |
abstract_object ()=default | |
Initializes a new instance of the xtd::abstract_object class. | |
using xtd::basic_array< type_t, allocator_t >::value_type |
Represents the array value type.
using xtd::basic_array< type_t, allocator_t >::allocator_type |
Represents the array allocator type.
using xtd::basic_array< type_t, allocator_t >::base_type |
Represents the array base type.
using xtd::basic_array< type_t, allocator_t >::size_type |
Represents the array size type (usually xtd::size).
using xtd::basic_array< type_t, allocator_t >::difference_type |
Represents the array difference type (usually xtd::ptrdiff).
using xtd::basic_array< type_t, allocator_t >::reference |
Represents the reference of array value type.
using xtd::basic_array< type_t, allocator_t >::const_reference |
Represents the const reference of array value type.
using xtd::basic_array< type_t, allocator_t >::pointer |
Represents the pointer of array value type.
using xtd::basic_array< type_t, allocator_t >::const_pointer |
Represents the const pointer of array value type.
using xtd::basic_array< type_t, allocator_t >::iterator |
Represents the iterator of array value type.
using xtd::basic_array< type_t, allocator_t >::const_iterator |
Represents the const iterator of array value type.
using xtd::basic_array< type_t, allocator_t >::reverse_iterator |
Represents the reverse iterator of array value type.
using xtd::basic_array< type_t, allocator_t >::const_reverse_iterator |
Represents the const reverse iterator of array value type.
|
inlinevirtual |
Returns a reference to the last element in the container.
|
inlinevirtual |
Returns a reference to the last element in the container.
|
inlineoverridenoexcept |
Returns an iterator to the first element of the enumarable.
|
inlineoverridenoexcept |
Returns an iterator to the first element of the enumarable.
|
inlineoverridenoexcept |
Returns an iterator to the first element of the enumarable.
|
inlineoverridenoexcept |
Returns an iterator to the element following the last element of the enumarable.
|
inlineoverridenoexcept |
Gets the number of elements contained in the xtd::array <type_t>.
|
inlinevirtualnoexcept |
Returns a reverse iterator to the first element of the reversed vector. It corresponds to the last element of the non-reversed vector. If the vector is empty, the returned iterator is equal to xtd::array::rend().
|
inlinevirtualnoexcept |
Returns a reverse iterator to the element following the last element of the reversed vector. It corresponds to the element preceding the first element of the non-reversed vector. This element acts as a placeholder, attempting to access it results in undefined behavior.
|
inlinevirtualnoexcept |
Returns pointer to the underlying array serving as element storage.
|
inlinevirtualnoexcept |
Returns pointer to the underlying array serving as element storage.
|
inlinevirtualnoexcept |
Checks if the container has no elements, i.e. whether xtd::array::begin() == xtd::array::end().
true
if the container is empty, false
otherwise.
|
inlineoverridenoexcept |
Returns an iterator to the element following the last element of the enumarable.
|
inlineoverridenoexcept |
Returns an iterator to the element following the last element of the enumarable.
|
inlinevirtual |
Returns a reference to the first element in the container.
|
inlinevirtual |
Returns a reference to the first element in the container.
|
inlinevirtualnoexcept |
Returns the underlying base type items.
|
inlinevirtualnoexcept |
Returns the underlying base type items.
|
inlinevirtualnoexcept |
Gets a size that represents the total number of elements in all the dimensions of the array.
|
inlinevirtual |
Gets a 64-bit integer that represents the total number of elements in all the dimensions of the array.
|
inlinevirtualnoexcept |
Returns the maximum number of elements the container is able to hold due to system or library implementation limitations, i.e. std::distance(xtd::array::begin(), xtd::array::end()) for the largest container.
|
inlinevirtualnoexcept |
Gets the rank (number of dimensions) of the array.
Reimplemented in xtd::array< type_t, rank_, allocator_t >, xtd::array< byte >, xtd::array< item >, xtd::array< item >, xtd::array< type_t, 1, allocator_t >, xtd::array< type_t, 1, allocator_t >, xtd::array< type_t, 2, allocator_t >, xtd::array< type_t, 2, allocator_t >, xtd::array< type_t, 3, allocator_t >, xtd::array< type_t, 3, allocator_t >, xtd::array< value_type >, xtd::array< xtd::array< bool > >, xtd::array< xtd::array< bool > >, xtd::array< xtd::array< xtd::byte > >, xtd::array< xtd::basic_string< char > >, xtd::array< xtd::byte >, xtd::array< xtd::diagnostics::stack_frame >, xtd::array< xtd::diagnostics::stack_frame >, xtd::array< xtd::drawing::color >, xtd::array< xtd::drawing::color >, xtd::array< xtd::drawing::imaging::encoder_parameter >, xtd::array< xtd::drawing::point >, xtd::array< xtd::drawing::point >, xtd::array< xtd::forms::shadow >, xtd::array< xtd::forms::shadow >, xtd::array< xtd::net::ip_address >, xtd::array< xtd::size >, xtd::array< xtd::size >, xtd::array< xtd::string >, xtd::array< xtd::string >, xtd::array< xtd::uint16 >, and xtd::array<>.
|
inlinevirtualnoexcept |
Returns a reverse iterator to the first element of the reversed vector. It corresponds to the last element of the non-reversed vector. If the vector is empty, the returned iterator is equal to xtd::array::rend().
|
inlinevirtualnoexcept |
Returns a reverse iterator to the first element of the reversed vector. It corresponds to the last element of the non-reversed vector. If the vector is empty, the returned iterator is equal to xtd::array::rend().
|
inlinevirtualnoexcept |
Returns a reverse iterator to the element following the last element of the reversed vector. It corresponds to the element preceding the first element of the non-reversed vector. This element acts as a placeholder, attempting to access it results in undefined behavior.
|
inlinevirtualnoexcept |
Returns a reverse iterator to the element following the last element of the reversed vector. It corresponds to the element preceding the first element of the non-reversed vector. This element acts as a placeholder, attempting to access it results in undefined behavior.
|
inlinevirtualnoexcept |
Returns the number of elements in the container, i.e. std::distance(xtd::array::begin(), xtd::array::end()).
|
inlinevirtual |
Returns a reference to the element at specified location pos, with bounds checking.
index | The position of the element to return. |
xtd::index_out_of_range_exception | If `index` is not within the range of the container. |
|
inlinevirtual |
Returns a reference to the element at specified location pos, with bounds checking.
index | The position of the element to return. |
xtd::index_out_of_range_exception | If `index` is not within the range of the container. |
|
inlineoverridenoexcept |
Determines whether an element is in the array.
value | The object to be added to the end of the array. |
|
inline |
Copies all the elements of the current one-dimensional array to the specified one-dimensional array starting at the specified destination array index. The index is specified as a 64-bit integer.
array | The one-dimensional array that is the destination of the elements copied from the current array. |
index | A 64-bit integer that represents the index in array at which copying begins. |
xtd::argument_exception | `array` is multidimensional. |
xtd::argument_out_of_range_exception | `index` is outside the range of valid indexes for array. |
|
inlineoverridevirtualnoexcept |
Determines whether the specified object is equal to the current object.
obj | The object to compare with the current object. |
true
if the specified object is equal to the current object. otherwise, false
. Reimplemented from xtd::object.
|
inlinevirtualnoexcept |
Assigns the value to all elements in the container.
value | The value to assign to the elements. |
|
inlineconstexpr |
Gets the total number of elements in all the dimensions of the array.
dimension | A zero-based dimension of the array whose length needs to be determined. |
xtd::argument_out_of_range_exception | `dimension` is equal to or greater than xtd::basic_array::rank. |
|
inlineconstexpr |
Gets a 64-bit integer that represents the total number of elements in all the dimensions of the array.
dimension | A zero-based dimension of the array whose length needs to be determined. |
xtd::argument_out_of_range_exception | `dimension` is equal to or greater than xtd::basic_array::rank. |
|
inlineconstexpr |
Gets the lower bound of the specified dimension in the array.
dimension | A zero-based dimension of the array whose lower bound needs to be determined. |
xtd::argument_out_of_range_exception | `dimension` is equal to or greater than xtd::basic_array::rank. |
|
inlineconstexpr |
Gets the upper bound of the specified dimension in the array.
dimension | A zero-based dimension of the array whose upper bound needs to be determined. |
xtd::argument_out_of_range_exception | `dimension` is equal to or greater than xtd::basic_array::rank. |
const value_type & xtd::basic_array< type_t, allocator_t >::get_value | ( | const xtd::array< size_type > & | indexes | ) | const |
Gets the value at the specified position in the multidimensional array. The indexes are specified as 32-bit integers array.
indexes | An array that represents the position of the element to get. |
xtd::index_out_of_range_exception | If `indexes` is outside the range of valid indexes for the corresponding dimension of the current array. |
|
inlineoverridenoexcept |
Determines the index of a specific item in the xtd::array <type_t>.
value | The object to locate in the xtd::array. |
|
inline |
Resizes the container to contain count
elements, does nothing if count == size(). / @param new_size The new size of the container. / @exception xtd::argument_out_of_range_exception If
new_sizeis outside greather than xtd::array::max_size. / @remarks If the current size is greater than
count, the container is reduced to its first
countelements. / @remarks If the current size is less than
count`, additional default-inserted elements are appended. void resize(size_type new_size) {resize(new_size, value_type {});}.
/ Resizes the container to contain count
elements, does nothing if count == size(). @param new_size The new size of the container. @param value The value to initialize the new elements with. @exception xtd::argument_out_of_range_exception If
new_sizeis outside greather than xtd::array::max_size. @remarks If the current size is greater than
count, the container is reduced to its first
countelements. @remarks If the current size is less than
count`, additional default-inserted elements are appended.
|
inline |
Sets a value to the element at the specified position in the multidimensional array.
value | The new value for the specified element. |
indexes | An array that represents the position of the element to set. |
xtd::index_out_of_range_exception | Either `indexes` is outside the range of valid indexes for the current array. |
|
inlinevirtualnoexcept |
Exchanges the contents and capacity of the container with those of other. Does not invoke any move, copy, or swap operations on individual elements.
|
overridevirtualnoexcept |
Returns a xtd::string that represents the current object.
Reimplemented from xtd::object.
|
inlinestaticnoexcept |
Determines the index of a specific item in the array specified.
array | The object to locate in the array. |
value | The object to locate in the array. |
|
inlinestatic |
Determines the index of a specific item in the array specified.
array | The object to locate in the array. |
value | The object to locate in the array. |
index | The zero-based starting index of the search. |
xtd::argument_out_of_range_exception | The parameters `index` is less than 0. |
|
inlinestatic |
Determines the index of a specific item in the array specified.
array | The object to locate in the array. |
value | The object to locate in the array. |
index | The zero-based starting index of the search. |
count | The number of elements in the section to search |
xtd::argument_out_of_range_exception | The parameters `index` and `count` do not specify a valid section in the 'array'. |
|
inlinestaticnoexcept |
Reverses the order of the elements in the entire xtd::basic_array.
i
is any index within the range, moves to xtd::basic_array <type_t>[j], where j
equals index plus index plus count minus i
minus 1.
|
inlinestatic |
Reverses the order of the elements in the specified range.
index | The zero-based starting index of the range to reverse. |
count | The number of elements in the range to reverse. |
xtd::argument_out_of_range_exception | `index` and `count` do not denote a valid range of elements in the xtd::basic_array. |
i
is any index within the range, moves to xtd::basic_array <type_t>[j], where j
equals index plus index plus count minus i
minus 1. count
.
|
inline |
Copy assignment operator. Replaces the contents with a copy of the contents of other.
other | Another container to use as data source. |
|
defaultnoexcept |
Move assignment operator. Replaces the contents with those of other using move semantics (i.e. the data in other is moved from other into this container). other is in a valid but unspecified state afterwards.
other | Another base type container to use as data source. |
|
inline |
Replaces the contents with those identified by initializer list ilist.
items | Initializer list to use as data source |
|
inlineoverride |
Returns a reference to the element at specified location index.
index | The position of the element to return. |
xtd::index_out_of_range_exception | If pos is not within the range of the container. |
|
inlineoverride |
Returns a reference to the element at specified location index.
index | The position of the element to return. |
xtd::index_out_of_range_exception | If `index` is not within the range of the container. |
|
inlinenoexcept |
Returns a reference to the underlying base type.
|
inlinenoexcept |
Returns a reference to the underlying base type.
type_t & xtd::basic_array< type_t, allocator_t >::operator() | ( | const xtd::array< size_type > & | indexes | ) |
Gets the value at the specified position in the multidimensional array. The indexes are specified as a 32-bit integer array.
indexes | An array that represents the multidimension index of the array element to get. |
xtd::index_out_of_range_exception | Either each index is outside the range of valid indexes for the corresponding dimension of the current array. |
const type_t & xtd::basic_array< type_t, allocator_t >::operator() | ( | const xtd::array< size_type > & | indexes | ) | const |
Gets the value at the specified position in the multidimensional array. The indexes are specified as a 32-bit integer array.
indexes | An array that represents the multidimension index of the array element to get. |
xtd::index_out_of_range_exception | Either each index is outside the range of valid indexes for the corresponding dimension of the current array. |
|
inlinestaticconstexpr |
This is a special value equal to the maximum value representable by the type xtd::size.