Vue modifiable d'un tableau d'un type T. Plus de détails...
#include <arccore/base/ArrayView.h>
Types publics | |
| using | ThatClass = ArrayView<T> |
| typedef T | value_type |
| Type des éléments du tableau. | |
| typedef value_type * | pointer |
| Type pointeur d'un élément du tableau. | |
| typedef const value_type * | const_pointer |
| Type pointeur constant d'un élément du tableau. | |
| typedef ArrayIterator< pointer > | iterator |
| Type de l'itérateur sur un élément du tableau. | |
| typedef ArrayIterator< const_pointer > | const_iterator |
| Type de l'itérateur constant sur un élément du tableau. | |
| typedef value_type & | reference |
| Type référence d'un élément du tableau. | |
| typedef const value_type & | const_reference |
| Type référence constante d'un élément du tableau. | |
| typedef Integer | size_type |
| Type indexant le tableau. | |
| typedef std::ptrdiff_t | difference_type |
| Type d'une distance entre itérateur éléments du tableau. | |
| typedef IterT< ArrayView< T > > | iter |
| Type d'un itérateur sur tout le tableau. | |
| typedef ConstIterT< ArrayView< T > > | const_iter |
| Type d'un itérateur constant sur tout le tableau. | |
| typedef std::reverse_iterator< iterator > | reverse_iterator |
| typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
Fonctions membres publiques | |
| constexpr | ArrayView () noexcept |
| Construit une vue vide. | |
| ArrayView (const ArrayView< T > &from)=default | |
| Constructeur de recopie depuis une autre vue. | |
| constexpr | ArrayView (Integer asize, pointer ptr) noexcept |
| Construit une vue sur une zone mémoire commencant par ptr et. | |
| template<std::size_t N> | |
| constexpr | ArrayView (std::array< T, N > &v) |
| Construit une vue sur une zone mémoire commencant par ptr et contenant asize éléments. | |
| ArrayView< T > & | operator= (const ArrayView< T > &from)=default |
| Opérateur de recopie. | |
| template<std::size_t N> | |
| constexpr ArrayView< T > & | operator= (std::array< T, N > &from) |
| constexpr reference | operator[] (Integer i) |
| i-ème élément du tableau. | |
| constexpr const_reference | operator[] (Integer i) const |
| i-ème élément du tableau. | |
| constexpr reference | operator() (Integer i) |
| i-ème élément du tableau. | |
| constexpr const_reference | operator() (Integer i) const |
| i-ème élément du tableau. | |
| constexpr const_reference | item (Integer i) const |
| i-ème élément du tableau. | |
| constexpr void | setItem (Integer i, const_reference v) |
| Positionne le i-ème élément du tableau. | |
| constexpr Integer | size () const noexcept |
| Retourne la taille du tableau. | |
| constexpr Integer | length () const noexcept |
| Nombre d'éléments du tableau. | |
| constexpr iterator | begin () noexcept |
| Itérateur sur le premier élément du tableau. | |
| constexpr iterator | end () noexcept |
| Itérateur sur le premier élément après la fin du tableau. | |
| constexpr const_iterator | begin () const noexcept |
| Itérateur constant sur le premier élément du tableau. | |
| constexpr const_iterator | end () const noexcept |
| Itérateur constant sur le premier élément après la fin du tableau. | |
| constexpr reverse_iterator | rbegin () noexcept |
| Itérateur inverse sur le premier élément du tableau. | |
| constexpr const_reverse_iterator | rbegin () const noexcept |
| Itérateur inverse sur le premier élément du tableau. | |
| constexpr reverse_iterator | rend () noexcept |
| Itérateur inverse sur le premier élément après la fin du tableau. | |
| constexpr const_reverse_iterator | rend () const noexcept |
| Itérateur inverse sur le premier élément après la fin du tableau. | |
| ArrayRange< pointer > | range () |
| Intervalle d'itération du premier au dernièr élément. | |
| ArrayRange< const_pointer > | range () const |
| Intervalle d'itération du premier au dernièr élément. | |
| constexpr pointer | ptrAt (Integer index) |
| Adresse du index-ème élément. | |
| constexpr const_pointer | ptrAt (Integer index) const |
| Adresse du index-ème élément. | |
| constexpr const_reference | at (Integer i) const |
| void | setAt (Integer i, const_reference value) |
| void | fill (const T &o) noexcept |
| Remplit le tableau avec la valeur o. | |
| constexpr ConstArrayView< T > | constView () const noexcept |
| Vue constante sur cette vue. | |
| constexpr ArrayView< T > | subView (Integer abegin, Integer asize) noexcept |
| Sous-vue à partir de l'élément abegin et contenant asize éléments. | |
| constexpr ThatClass | subPart (Integer abegin, Integer asize) noexcept |
| Sous-vue à partir de l'élément abegin et contenant asize éléments. | |
| constexpr ConstArrayView< T > | subConstView (Integer abegin, Integer asize) const noexcept |
| Sous-vue constante à partir de l'élément abegin et contenant asize éléments. | |
| constexpr ArrayView< T > | subViewInterval (Integer index, Integer nb_interval) |
| Sous-vue correspondant à l'interval index sur nb_interval. | |
| constexpr ThatClass | subPartInterval (Integer index, Integer nb_interval) |
| Sous-vue correspondant à l'interval index sur nb_interval. | |
| template<class U> | |
| void | copy (const U ©_array) |
| Recopie le tableau copy_array dans l'instance. | |
| constexpr bool | empty () const noexcept |
| Retourne true si le tableau est vide (dimension nulle). | |
| bool | contains (const_reference v) const |
| true si le tableau contient l'élément de valeur v | |
| void | setArray (const ArrayView< T > &v) noexcept |
| constexpr pointer | unguardedBasePointer () noexcept |
| Pointeur sur le début de la vue. | |
| constexpr const_pointer | unguardedBasePointer () const noexcept |
| Pointeur constant sur le début de la vue. | |
| constexpr const_pointer | data () const noexcept |
| Pointeur sur le début de la vue. | |
| constexpr pointer | data () noexcept |
| Pointeur constant sur le début de la vue. | |
Fonctions membres publiques statiques | |
| static constexpr ThatClass | create (pointer ptr, Integer asize) noexcept |
| Construit une vue sur une zone mémoire commencant par ptr et. | |
Fonctions membres protégées | |
| constexpr pointer | _ptr () noexcept |
| Retourne un pointeur sur le tableau. | |
| constexpr const_pointer | _ptr () const noexcept |
| Retourne un pointeur sur le tableau. | |
| void | _setArray (pointer v, Integer s) noexcept |
| Modifie le pointeur et la taille du tableau. | |
| void | _setPtr (pointer v) noexcept |
| Modifie le pointeur du début du tableau. | |
| void | _setSize (Integer s) noexcept |
| Modifie la taille du tableau. | |
Amis | |
| template<typename T2, Int64 Extent> | |
| class | Span |
| template<typename T2, Int32 Extent> | |
| class | SmallSpan |
| bool | operator== (const ArrayView< T > &rhs, const ArrayView< T > &lhs) |
| bool | operator!= (const ArrayView< T > &rhs, const ArrayView< T > &lhs) |
| std::ostream & | operator<< (std::ostream &o, const ArrayView< T > &val) |
Vue modifiable d'un tableau d'un type T.
Cette classe template permet d'accéder et d'utiliser un tableau d'éléments du type T de la même manière qu'un tableau C standard. Elle maintient en plus la taille du tableau. La fonction size() permet de connaître le nombre d'éléments du tableau et l'opérateur operator[]() permet d'accéder à un élément donné.
Il est garanti que tous les éléments de la vue sont consécutifs en mémoire.
Cette classe ne gère aucune mémoire et c'est le conteneur associé qui la gère. Les conteneurs possibles fournis par Arccore sont les classes Array, UniqueArray ou SharedArray. Une vue n'est valide que tant que le conteneur associé n'est pas réalloué. De même, le contructeur et l'opérateur de recopie ne font que recopier les pointeurs sans réallouer la mémoire. Il faut donc les utiliser avec précaution.
Si Arccore est compilé en mode vérification (ARCCORE_CHECK est défini), les accès par l'intermédiaire de l'opérateurs operator[]() sont vérifiés et une exception IndexOutOfRangeException est lancé si un débordement de tableau a lieu. En attachant une session de debug au processus, il est possible de voir la pile d'appel au moment du débordement.
Voici des exemples d'utilisation:
Il est aussi possible d'accéder aux éléments du tableau par des itérateurs de la même manière qu'avec les containers de la STL.
L'exemple suivant créé un itérateur i sur le tableau a et itère sur tout le tableau (méthode i()) et affiche les éléments:
L'exemple suivant fait la somme des 3 premiers éléments du tableau:
Définition à la ligne 94 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef ConstIterT<ArrayView<T> > Arcane::ArrayView< T >::const_iter |
Type d'un itérateur constant sur tout le tableau.
Définition à la ligne 125 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef ArrayIterator<const_pointer> Arcane::ArrayView< T >::const_iterator |
Type de l'itérateur constant sur un élément du tableau.
Définition à la ligne 112 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef const value_type* Arcane::ArrayView< T >::const_pointer |
Type pointeur constant d'un élément du tableau.
Définition à la ligne 108 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef const value_type& Arcane::ArrayView< T >::const_reference |
Type référence constante d'un élément du tableau.
Définition à la ligne 116 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef std::reverse_iterator<const_iterator> Arcane::ArrayView< T >::const_reverse_iterator |
Définition à la ligne 128 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef std::ptrdiff_t Arcane::ArrayView< T >::difference_type |
Type d'une distance entre itérateur éléments du tableau.
Définition à la ligne 120 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef IterT<ArrayView<T> > Arcane::ArrayView< T >::iter |
Type d'un itérateur sur tout le tableau.
Définition à la ligne 123 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef ArrayIterator<pointer> Arcane::ArrayView< T >::iterator |
Type de l'itérateur sur un élément du tableau.
Définition à la ligne 110 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef value_type* Arcane::ArrayView< T >::pointer |
Type pointeur d'un élément du tableau.
Définition à la ligne 106 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef value_type& Arcane::ArrayView< T >::reference |
Type référence d'un élément du tableau.
Définition à la ligne 114 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef std::reverse_iterator<iterator> Arcane::ArrayView< T >::reverse_iterator |
Définition à la ligne 127 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef Integer Arcane::ArrayView< T >::size_type |
Type indexant le tableau.
Définition à la ligne 118 du fichier arccore/src/base/arccore/base/ArrayView.h.
| using Arcane::ArrayView< T >::ThatClass = ArrayView<T> |
Définition à la ligne 101 du fichier arccore/src/base/arccore/base/ArrayView.h.
| typedef T Arcane::ArrayView< T >::value_type |
Type des éléments du tableau.
Définition à la ligne 104 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Construit une vue vide.
Définition à la ligne 133 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::CaseOptionMultiEnumT< T >::_allocate(), Arcane::CaseOptionMultiSimpleT< T >::operator ArrayView< T >(), Arcane::CaseOptionMultiSimpleT< T >::operator ConstArrayView< T >(), Arcane::ArrayView< Type >::subView(), et Arcane::VariableRefArrayT< T >::VariableRefArrayT().
|
inlineconstexprnoexcept |
Construit une vue sur une zone mémoire commencant par ptr et.
Définition à la ligne 143 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexpr |
Construit une vue sur une zone mémoire commencant par ptr et contenant asize éléments.
Définition à la ligne 150 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprprotectednoexcept |
Retourne un pointeur sur le tableau.
Cette méthode est identique à unguardedBasePointer() (i.e: il faudra penser à la supprimer)
Définition à la ligne 493 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprprotectednoexcept |
Retourne un pointeur sur le tableau.
Cette méthode est identique à unguardedBasePointer() (i.e: il faudra penser à la supprimer)
Définition à la ligne 486 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::CaseOptionMultiSimpleT< T >::print().
|
inlineprotectednoexcept |
Modifie le pointeur et la taille du tableau.
C'est à la classe dérivée de vérifier la cohérence entre le pointeur alloué et la dimension donnée.
Définition à la ligne 501 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::CaseOptionMultiSimpleT< T >::_search().
|
inlineprotectednoexcept |
Modifie le pointeur du début du tableau.
C'est à la classe dérivée de vérifier la cohérence entre le pointeur alloué et la dimension donnée.
Définition à la ligne 513 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineprotectednoexcept |
Modifie la taille du tableau.
C'est à la classe dérivée de vérifier la cohérence entre le pointeur alloué et la dimension donnée.
Définition à la ligne 521 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexpr |
Définition à la ligne 297 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Itérateur constant sur le premier élément du tableau.
Définition à la ligne 253 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Itérateur sur le premier élément du tableau.
Définition à la ligne 249 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::ArrayView< Type >::rend(), et Arcane::ArrayView< Type >::rend().
|
inlineconstexprnoexcept |
Vue constante sur cette vue.
Définition à la ligne 320 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::math::mult().
|
inline |
true si le tableau contient l'élément de valeur v
Définition à la ligne 403 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inline |
Recopie le tableau copy_array dans l'instance.
Comme aucune allocation mémoire n'est effectuée, le nombre d'éléments de copy_array doit être inférieur ou égal au nombre d'éléments courant. S'il est inférieur, les éléments du tableau courant situés à la fin du tableau sont inchangés
Définition à la ligne 388 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::MessagePassing::namedBarrier(), et Arcane::ItemGroupImpl::setItems().
|
inlinestaticconstexprnoexcept |
Construit une vue sur une zone mémoire commencant par ptr et.
Définition à la ligne 170 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Pointeur sur le début de la vue.
Définition à la ligne 448 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::math::add(), Arcane::math::add(), Arcane::DataTypeTraitsT< Real2 >::fillNan(), Arcane::DataTypeTraitsT< Real2x2 >::fillNan(), Arcane::DataTypeTraitsT< Real3 >::fillNan(), Arcane::DataTypeTraitsT< Real3x3 >::fillNan(), Arcane::math::mult(), Arcane::math::mult(), Arcane::ConstArrayView< Type >::operator=(), Arcane::math::power(), Arcane::Hdf5Utils::StandardArrayT< DataType >::read(), Arcane::math::sub(), et Arcane::math::sub().
|
inlineconstexprnoexcept |
Pointeur constant sur le début de la vue.
Définition à la ligne 458 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Retourne true si le tableau est vide (dimension nulle).
Définition à la ligne 401 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Itérateur constant sur le premier élément après la fin du tableau.
Définition à la ligne 255 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Itérateur sur le premier élément après la fin du tableau.
Définition à la ligne 251 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::ArrayView< Type >::rbegin(), et Arcane::ArrayView< Type >::rbegin().
|
inlinenoexcept |
Remplit le tableau avec la valeur o.
Définition à la ligne 311 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::MessagePassing::mpWait(), et Arcane::MessagePassing::namedBarrier().
|
inlineconstexpr |
i-ème élément du tableau.
En mode check, vérifie les débordements.
Définition à la ligne 226 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Nombre d'éléments du tableau.
Définition à la ligne 246 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexpr |
i-ème élément du tableau.
En mode check, vérifie les débordements.
Définition à la ligne 204 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexpr |
i-ème élément du tableau.
En mode check, vérifie les débordements.
Définition à la ligne 215 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexpr |
Définition à la ligne 159 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexpr |
i-ème élément du tableau.
En mode check, vérifie les débordements.
Définition à la ligne 182 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexpr |
i-ème élément du tableau.
En mode check, vérifie les débordements.
Définition à la ligne 193 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexpr |
Adresse du index-ème élément.
Définition à la ligne 283 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexpr |
Adresse du index-ème élément.
Définition à la ligne 290 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inline |
Intervalle d'itération du premier au dernièr élément.
Définition à la ligne 269 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inline |
Intervalle d'itération du premier au dernièr élément.
Définition à la ligne 275 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Itérateur inverse sur le premier élément du tableau.
Définition à la ligne 259 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Itérateur inverse sur le premier élément du tableau.
Définition à la ligne 257 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Itérateur inverse sur le premier élément après la fin du tableau.
Définition à la ligne 263 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Itérateur inverse sur le premier élément après la fin du tableau.
Définition à la ligne 261 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlinenoexcept |
Définition à la ligne 414 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inline |
Définition à la ligne 304 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexpr |
Positionne le i-ème élément du tableau.
En mode check, vérifie les débordements.
Définition à la ligne 237 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Retourne la taille du tableau.
Définition à la ligne 244 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::CaseOptionMultiEnumT< T >::_allocate(), Arcane::CaseOptionMultiEnumT< T >::_nbElem(), Arcane::math::add(), Arcane::math::add(), Arcane::IBinaryMathFunctor< Arg1, Arg2, ReturnType >::apply(), Arcane::VariableRefArrayT< DataType >::arraySize(), Arcane::ItemGroupImpl::changeIds(), Arcane::DataTypeTraitsT< Real2 >::fillNan(), Arcane::DataTypeTraitsT< Real2x2 >::fillNan(), Arcane::DataTypeTraitsT< Real3 >::fillNan(), Arcane::DataTypeTraitsT< Real3x3 >::fillNan(), Arcane::math::mult(), Arcane::math::mult(), Arcane::MessagePassing::namedBarrier(), Arcane::ConstArrayView< Type >::operator=(), Arcane::math::power(), Arcane::MeshUtils::removeItemAndKeepOrder(), Arcane::math::sub(), Arcane::math::sub(), et Arcane::math::truncateDouble().
|
inlineconstexprnoexcept |
Sous-vue constante à partir de l'élément abegin et contenant asize éléments.
Si (abegin+ asize) est supérieur à la taille du tableau, la vue est tronquée à cette taille, retournant éventuellement une vue vide.
Définition à la ligne 359 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Sous-vue à partir de l'élément abegin et contenant asize éléments.
Si (abegin+ asize) est supérieur à la taille du tableau, la vue est tronquée à cette taille, retournant éventuellement une vue vide.
Définition à la ligne 347 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexpr |
Sous-vue correspondant à l'interval index sur nb_interval.
Définition à la ligne 374 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Sous-vue à partir de l'élément abegin et contenant asize éléments.
Si (abegin+ asize) est supérieur à la taille du tableau, la vue est tronquée à cette taille, retournant éventuellement une vue vide.
Définition à la ligne 332 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::ArrayView< Type >::subPart().
|
inlineconstexpr |
Sous-vue correspondant à l'interval index sur nb_interval.
Définition à la ligne 368 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Pointeur constant sur le début de la vue.
Définition à la ligne 438 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
inlineconstexprnoexcept |
Pointeur sur le début de la vue.
Définition à la ligne 428 du fichier arccore/src/base/arccore/base/ArrayView.h.
Référencé par Arcane::MessagePassing::namedBarrier().
Définition à la ligne 467 du fichier arccore/src/base/arccore/base/ArrayView.h.
|
friend |
Définition à la ligne 472 du fichier arccore/src/base/arccore/base/ArrayView.h.
Définition à la ligne 462 du fichier arccore/src/base/arccore/base/ArrayView.h.
Définition à la ligne 97 du fichier arccore/src/base/arccore/base/ArrayView.h.
Définition à la ligne 96 du fichier arccore/src/base/arccore/base/ArrayView.h.