Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Référence du modèle de la classe Arcane::SmallArray< T, NbElement >final

Tableau 1D de données avec buffer pré-alloué sur la pile. Plus de détails...

#include <arcane/utils/SmallArray.h>

Types publics

typedef ArrayTraits< T >::ConstReferenceType ConstReferenceType
 
- Types publics hérités de Arcane::Array< T >
typedef AbstractArray< T > BaseClassType
 
typedef ArrayTraits< T >::ConstReferenceType ConstReferenceType
 
typedef T value_type
 Type des éléments du tableau.
 
typedef ArrayIterator< pointeriterator
 Type de l'itérateur sur un élément du tableau.
 
typedef ArrayIterator< const_pointerconst_iterator
 Type de l'itérateur constant sur un élément du tableau.
 
typedef std::reverse_iterator< iteratorreverse_iterator
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 
typedef value_typepointer
 Type pointeur d'un élément du tableau.
 
typedef const value_typeconst_pointer
 Type pointeur constant d'un élément du tableau.
 
typedef value_typereference
 Type référence d'un élément du tableau.
 
typedef ConstReferenceType const_reference
 Type référence constante d'un élément du tableau.
 
typedef Int64 size_type
 Type indexant le tableau.
 
typedef ptrdiff_t difference_type
 Type d'une distance entre itérateur éléments du tableau.
 
- Types publics hérités de Arcane::AbstractArray< T >
typedef ArrayTraits< T >::ConstReferenceType ConstReferenceType
 
typedef ArrayTraits< T >::IsPODType IsPODType
 
typedef AbstractArray< T > ThatClassType
 
using TrueImpl = T
 
typedef T value_type
 Type des éléments du tableau.
 
typedef value_typepointer
 Type pointeur d'un élément du tableau.
 
typedef const value_typeconst_pointer
 Type pointeur constant d'un élément du tableau.
 
typedef ArrayIterator< pointeriterator
 Type de l'itérateur sur un élément du tableau.
 
typedef ArrayIterator< const_pointerconst_iterator
 Type de l'itérateur constant sur un élément du tableau.
 
typedef value_typereference
 Type référence d'un élément du tableau.
 
typedef ConstReferenceType const_reference
 Type référence constante d'un élément du tableau.
 
typedef Int64 size_type
 Type indexant le tableau.
 
typedef ptrdiff_t difference_type
 Type d'une distance entre itérateur éléments du tableau.
 
typedef std::reverse_iterator< iteratorreverse_iterator
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 

Fonctions membres publiques

 SmallArray ()
 Créé un tableau vide.
 
 SmallArray (Int64 req_size, ConstReferenceType value)
 Créé un tableau de size éléments contenant la valeur value.
 
 SmallArray (Int64 asize)
 Créé un tableau de asize éléments contenant la valeur par défaut du type T()
 
 SmallArray (Int32 asize)
 Créé un tableau de asize éléments contenant la valeur par défaut du type T()
 
 SmallArray (size_t asize)
 Créé un tableau de asize éléments contenant la valeur par défaut du type T()
 
 SmallArray (const ConstArrayView< T > &aview)
 Créé un tableau en recopiant les valeurs de la value aview.
 
 SmallArray (const Span< const T > &aview)
 Créé un tableau en recopiant les valeurs de la value aview.
 
 SmallArray (const ArrayView< T > &aview)
 Créé un tableau en recopiant les valeurs de la value aview.
 
 SmallArray (const Span< T > &aview)
 Créé un tableau en recopiant les valeurs de la value aview.
 
 SmallArray (std::initializer_list< T > alist)
 
 SmallArray (const Array< T > &rhs)
 Créé un tableau en recopiant les valeurs rhs.
 
void operator= (const Array< T > &rhs)
 Copie les valeurs de rhs dans cette instance.
 
void operator= (const ArrayView< T > &rhs)
 Copie les valeurs de la vue rhs dans cette instance.
 
void operator= (const Span< T > &rhs)
 Copie les valeurs de la vue rhs dans cette instance.
 
void operator= (const ConstArrayView< T > &rhs)
 Copie les valeurs de la vue rhs dans cette instance.
 
void operator= (const Span< const T > &rhs)
 Copie les valeurs de la vue rhs dans cette instance.
 
 ~SmallArray () override
 Détruit l'instance.
 
template<Int32 N>
 SmallArray (SmallArray< T, N > &&rhs)=delete
 
template<Int32 N>
SmallArray< T, NbElement > operator= (SmallArray< T, N > &&rhs)=delete
 
- Fonctions membres publiques hérités de Arcane::Array< T >
 operator ConstArrayView< T > () const
 
 operator ArrayView< T > ()
 
 operator Span< const T > () const
 
 operator Span< T > ()
 
ConstArrayView< T > constView () const
 Vue constante sur ce tableau.
 
Span< const T > constSpan () const
 Vue constante sur ce tableau.
 
ConstArrayView< T > subConstView (Int64 abegin, Int32 asize) const
 Sous-vue à partir de l'élément abegin et contenant asize éléments.
 
ArrayView< T > view () const
 Vue mutable sur ce tableau.
 
Span< const T > span () const
 Vue immutable sur ce tableau.
 
Span< T > span ()
 Vue mutable sur ce tableau.
 
SmallSpan< const T > smallSpan () const
 Vue immutable sur ce tableau.
 
SmallSpan< const T > constSmallSpan () const
 Vue immutable sur ce tableau.
 
SmallSpan< T > smallSpan ()
 Vue mutable sur ce tableau.
 
ArrayView< T > subView (Int64 abegin, Integer asize)
 Sous-vue à partir de l'élément abegin et contenant asize éléments.
 
void sample (ConstArrayView< Integer > indexes, ArrayView< T > result) const
 Extrait un sous-tableau à à partir d'une liste d'index.
 
void add (ConstReferenceType val)
 Ajoute l'élément val à la fin du tableau.
 
void addRange (ConstReferenceType val, Int64 n)
 Ajoute n élément de valeur val à la fin du tableau.
 
void addRange (ConstArrayView< T > val)
 Ajoute n élément de valeur val à la fin du tableau.
 
void addRange (Span< const T > val)
 Ajoute n élément de valeur val à la fin du tableau.
 
void addRange (ArrayView< T > val)
 Ajoute n élément de valeur val à la fin du tableau.
 
void addRange (Span< T > val)
 Ajoute n élément de valeur val à la fin du tableau.
 
void addRange (const Array< T > &val)
 Ajoute n élément de valeur val à la fin du tableau.
 
void resize (Int64 s)
 Change le nombre d'éléments du tableau à s.
 
void resize (Int64 s, ConstReferenceType fill_value)
 Change le nombre d'éléments du tableau à s.
 
void resizeNoInit (Int64 s)
 Redimensionne sans initialiser les nouvelles valeurs.
 
void reserve (Int64 new_capacity)
 Réserve le mémoire pour new_capacity éléments.
 
void shrink ()
 Réalloue pour libérer la mémoire non utilisée.
 
void shrink (Int64 new_capacity)
 Réalloue la mémoire avoir une capacité proche de new_capacity.
 
void shrink_to_fit ()
 Réalloue pour libérer la mémoire non utilisée.
 
void remove (Int64 index)
 Supprime l'entité ayant l'indice index.
 
void popBack ()
 Supprime la dernière entité du tableau.
 
T & at (Int64 i)
 Elément d'indice i. Vérifie toujours les débordements.
 
ConstReferenceType at (Int64 i) const
 Elément d'indice i. Vérifie toujours les débordements.
 
void setAt (Int64 i, ConstReferenceType value)
 Positionne l'élément d'indice i. Vérifie toujours les débordements.
 
ConstReferenceType item (Int64 i) const
 Elément d'indice i.
 
void setItem (Int64 i, ConstReferenceType v)
 Elément d'indice i.
 
ConstReferenceType operator[] (Int64 i) const
 Elément d'indice i.
 
T & operator[] (Int64 i)
 Elément d'indice i.
 
ConstReferenceType operator() (Int64 i) const
 
T & operator() (Int64 i)
 Elément d'indice i.
 
T & back ()
 Dernier élément du tableau.
 
ConstReferenceType back () const
 Dernier élément du tableau (const)
 
T & front ()
 Premier élément du tableau.
 
ConstReferenceType front () const
 Premier élément du tableau (const)
 
void clear ()
 Supprime les éléments du tableau.
 
void fill (ConstReferenceType value)
 Remplit le tableau avec la valeur value.
 
void copy (Span< const T > rhs)
 Copie les valeurs de rhs dans l'instance.
 
Array< T > clone () const
 Clone le tableau.
 
const T * unguardedBasePointer () const
 
T * unguardedBasePointer ()
 
const T * data () const
 Accès à la racine du tableau hors toute protection.
 
T * data ()
 
iterator begin ()
 Itérateur sur le premier élément du tableau.
 
const_iterator begin () const
 Itérateur constant sur le premier élément du tableau.
 
iterator end ()
 Itérateur sur le premier élément après la fin du tableau.
 
const_iterator end () const
 Itérateur constant sur le premier élément après la fin du tableau.
 
reverse_iterator rbegin ()
 Itérateur inverse sur le premier élément du tableau.
 
const_reverse_iterator rbegin () const
 Itérateur inverse sur le premier élément du tableau.
 
reverse_iterator rend ()
 Itérateur inverse sur le premier élément après la fin du tableau.
 
const_reverse_iterator rend () const
 Itérateur inverse sur le premier élément après la fin du tableau.
 
ArrayRange< pointerrange ()
 Intervalle d'itération du premier au dernièr élément.
 
ArrayRange< const_pointerrange () const
 Intervalle d'itération du premier au dernièr élément.
 
void push_back (ConstReferenceType val)
 Ajoute l'élément val à la fin du tableau.
 
- Fonctions membres publiques hérités de Arcane::AbstractArray< T >
 AbstractArray (const AbstractArray< T > &rhs)=delete
 
AbstractArray< T > & operator= (const AbstractArray< T > &rhs)=delete
 
void dispose ()
 Libère la mémoire utilisée par le tableau.
 
 operator ConstArrayView< T > () const
 
 operator Span< const T > () const
 
 operator SmallSpan< const T > () const
 
Integer size () const
 Nombre d'éléments du vecteur.
 
Integer length () const
 Nombre d'éléments du vecteur.
 
Integer capacity () const
 Capacité (nombre d'éléments alloués) du vecteur.
 
Int64 largeSize () const
 Nombre d'éléments du vecteur (en 64 bits)
 
Int64 largeLength () const
 Nombre d'éléments du vecteur (en 64 bits)
 
Int64 largeCapacity () const
 Capacité (nombre d'éléments alloués) du vecteur (en 64 bits)
 
bool empty () const
 Capacité (nombre d'éléments alloués) du vecteur.
 
bool contains (ConstReferenceType v) const
 Vrai si le tableau contient l'élément de valeur v.
 
ConstReferenceType operator[] (Int64 i) const
 Elément d'indice i.
 
ConstReferenceType operator() (Int64 i) const
 Elément d'indice i.
 
void setMemoryLocationHint (eMemoryLocationHint new_hint)
 Modifie les informations sur la localisation mémoire.
 
void _internalSetHostDeviceMemoryLocation (eHostDeviceMemoryLocation location)
 Positionne l'emplacement physique de la zone mémoire.
 
eHostDeviceMemoryLocation hostDeviceMemoryLocation () const
 Positionne l'emplacement physique de la zone mémoire.
 
void printInfos (std::ostream &o)
 
- Fonctions membres publiques hérités de Arcane::AbstractArrayBase
IMemoryAllocatorallocator () const
 
MemoryAllocationOptions allocationOptions () const
 
void setDebugName (const String &name)
 Positionne le nom du tableau pour les informations de debug.
 
String debugName () const
 Nom de debug (nul si aucun nom spécifié)
 

Attributs publics statiques

static constexpr Int32 MemorySize = NbElement * SizeOfType
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arcane::Array< T >
 Array (Array< T > &&rhs) ARCCORE_NOEXCEPT
 Constructeur par déplacement (uniquement pour UniqueArray)
 
void _initFromInitializerList (std::initializer_list< T > alist)
 
- Fonctions membres protégées hérités de Arcane::AbstractArray< T >
 AbstractArray ()
 Construit un vecteur vide avec l'allocateur par défaut.
 
 AbstractArray (ThatClassType &&rhs) ARCCORE_NOEXCEPT
 Constructeur par déplacement. Ne doit être utilisé que par UniqueArray.
 
AllocatedMemoryInfo _currentMemoryInfo () const
 
void _initFromSpan (const Span< const T > &view)
 Initialise le tableau avec la vue view.
 
void _initFromAllocator (IMemoryAllocator *a, Int64 acapacity)
 Construit un tableau avec un allocateur spécifique a.
 
void _initFromAllocator (MemoryAllocationOptions o, Int64 acapacity)
 Construit un vecteur vide avec un allocateur spécifique a.
 
void _reserve (Int64 new_capacity)
 Réserve le mémoire pour new_capacity éléments.
 
template<typename PodType>
void _internalRealloc (Int64 new_capacity, bool compute_capacity, PodType pod_type, RunQueue *queue=nullptr)
 Réalloue le tableau pour une nouvelle capacité égale à new_capacity.
 
void _internalRealloc (Int64 new_capacity, bool compute_capacity)
 
void _internalReallocate (Int64 new_capacity, TrueType, RunQueue *queue)
 Réallocation pour un type POD.
 
void _internalReallocate (Int64 new_capacity, FalseType, RunQueue *queue)
 Réallocation pour un type complexe (non POD)
 
void _internalDeallocate (RunQueue *queue=nullptr)
 
void _internalAllocate (Int64 new_capacity, RunQueue *queue)
 
void _copyFromMemory (const T *source)
 
virtual void _updateReferences ()
 Mise à jour des références.
 
virtual Integer _getNbRef ()
 Mise à jour des références.
 
void _addRange (ConstReferenceType val, Int64 n)
 Ajoute n élément de valeur val à la fin du tableau.
 
void _addRange (Span< const T > val)
 Ajoute n élément de valeur val à la fin du tableau.
 
void _checkFreeMemory ()
 Détruit l'instance si plus personne ne la référence.
 
void _destroy ()
 
void _destroyRange (Int64, Int64, TrueType)
 
void _destroyRange (Int64 abegin, Int64 aend, FalseType)
 
void _createRangeDefault (Int64, Int64, TrueType)
 
void _createRangeDefault (Int64 abegin, Int64 aend, FalseType)
 
void _createRange (Int64 abegin, Int64 aend, ConstReferenceType value, TrueType)
 
void _createRange (Int64 abegin, Int64 aend, ConstReferenceType value, FalseType)
 
void _createRange (Int64 abegin, Int64 aend, const T *values)
 
void _fill (ConstReferenceType value)
 
void _clone (const ThatClassType &orig_array)
 
template<typename PodType>
void _resizeHelper (Int64 s, PodType pod_type, RunQueue *queue)
 
void _resize (Int64 s)
 
void _resizeNoInit (Int64 s, RunQueue *queue=nullptr)
 Redimensionne sans initialiser les nouvelles valeurs.
 
void _clear ()
 
void _resize (Int64 s, ConstReferenceType value)
 Redimensionne et remplit les nouvelles valeurs avec value.
 
void _copy (const T *rhs_begin, TrueType)
 
void _copy (const T *rhs_begin, FalseType)
 
void _copy (const T *rhs_begin)
 
void _resizeAndCopyView (Span< const T > rhs)
 Redimensionne l'instance et recopie les valeurs de rhs.
 
void _move (ThatClassType &rhs) ARCCORE_NOEXCEPT
 Implémente l'opérateur d'assignement par déplacement.
 
void _swap (ThatClassType &rhs) ARCCORE_NOEXCEPT
 Échange les valeurs de l'instance avec celles de rhs.
 
void _shrink ()
 
void _shrink (Int64 new_capacity)
 
void _reset ()
 Réinitialise le tableau à un tableau vide.
 
constexpr Integer _clampSizeOffet (Int64 offset, Int32 asize) const
 
void _assignFromArray (const AbstractArray< T > &rhs)
 
void _setMP (TrueImpl *new_mp)
 
void _setMP2 (TrueImpl *new_mp, ArrayMetaData *new_md)
 
bool _isSharedNull ()
 
- Fonctions membres protégées hérités de Arcane::AbstractArrayBase
virtual bool _isUseOwnMetaData () const
 Indique si m_md fait référence à m_meta_data.
 
void _swapMetaData (AbstractArrayBase &rhs)
 
void _copyMetaData (const AbstractArrayBase &rhs)
 
void _allocateMetaData ()
 
void _deallocateMetaData (ArrayMetaData *md)
 
void _checkValidSharedArray ()
 
- Fonctions membres protégées statiques hérités de Arcane::AbstractArray< T >
static constexpr Int64 typeSize ()
 
- Fonctions membres protégées statiques hérités de Arcane::AbstractArrayBase
static constexpr RunQueue_nullRunQueue ()
 Méthode explicite pour une RunQueue nulle.
 
- Attributs protégés hérités de Arcane::AbstractArray< T >
T * m_ptr = nullptr
 
- Attributs protégés hérités de Arcane::AbstractArrayBase
ArrayMetaDatam_md = nullptr
 
ArrayMetaData m_meta_data
 

Description détaillée

template<typename T, Int32 NbElement = 32>
class Arcane::SmallArray< T, NbElement >

Tableau 1D de données avec buffer pré-alloué sur la pile.

Cette classe s'utilise comme UniqueArray mais contient un buffer de taille fixe pour conserver NbElement éléments qui est utilisé si le tableau contient au plus NbElement éléments. Cela permet d'éviter des allocations dynamiques lorsque le nombre d'éléments est faible.

Si le tableau doit contenir plus de NbElement éléments, alors on utilise une allocation dynamique standard.

Définition à la ligne 87 du fichier SmallArray.h.

Documentation des définitions de type membres

◆ ConstReferenceType

template<typename T, Int32 NbElement = 32>
typedef ArrayTraits<T>::ConstReferenceType Arcane::AbstractArray< T >::ConstReferenceType

Définition à la ligne 285 du fichier arccore/src/collections/arccore/collections/Array.h.

Documentation des constructeurs et destructeur

◆ SmallArray() [1/11]

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::SmallArray ( )
inline

Créé un tableau vide.

Définition à la ligne 102 du fichier SmallArray.h.

Références Arcane::AbstractArray< T >::_initFromAllocator().

Référencé par SmallArray(), SmallArray(), SmallArray(), SmallArray(), SmallArray(), SmallArray(), SmallArray(), SmallArray(), et SmallArray().

◆ SmallArray() [2/11]

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::SmallArray ( Int64 req_size,
ConstReferenceType value )
inline

Créé un tableau de size éléments contenant la valeur value.

Définition à la ligne 109 du fichier SmallArray.h.

Références SmallArray().

◆ SmallArray() [3/11]

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::SmallArray ( Int64 asize)
inlineexplicit

Créé un tableau de asize éléments contenant la valeur par défaut du type T()

Définition à la ligne 116 du fichier SmallArray.h.

Références SmallArray().

◆ SmallArray() [4/11]

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::SmallArray ( Int32 asize)
inlineexplicit

Créé un tableau de asize éléments contenant la valeur par défaut du type T()

Définition à la ligne 123 du fichier SmallArray.h.

Références SmallArray().

◆ SmallArray() [5/11]

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::SmallArray ( size_t asize)
inlineexplicit

Créé un tableau de asize éléments contenant la valeur par défaut du type T()

Définition à la ligne 129 du fichier SmallArray.h.

Références SmallArray().

◆ SmallArray() [6/11]

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::SmallArray ( const ConstArrayView< T > & aview)
inline

Créé un tableau en recopiant les valeurs de la value aview.

Définition à la ligne 135 du fichier SmallArray.h.

Références SmallArray().

◆ SmallArray() [7/11]

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::SmallArray ( const Span< const T > & aview)
inline

Créé un tableau en recopiant les valeurs de la value aview.

Définition à la ligne 141 du fichier SmallArray.h.

Références Arcane::AbstractArray< T >::_initFromSpan(), et SmallArray().

◆ SmallArray() [8/11]

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::SmallArray ( const ArrayView< T > & aview)
inline

Créé un tableau en recopiant les valeurs de la value aview.

Définition à la ligne 148 du fichier SmallArray.h.

Références SmallArray().

◆ SmallArray() [9/11]

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::SmallArray ( const Span< T > & aview)
inline

Créé un tableau en recopiant les valeurs de la value aview.

Définition à la ligne 154 du fichier SmallArray.h.

Références SmallArray().

◆ SmallArray() [10/11]

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::SmallArray ( std::initializer_list< T > alist)
inline

Définition à la ligne 159 du fichier SmallArray.h.

◆ SmallArray() [11/11]

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::SmallArray ( const Array< T > & rhs)
inline

Créé un tableau en recopiant les valeurs rhs.

Définition à la ligne 166 du fichier SmallArray.h.

Références Arcane::Array< T >::constSpan(), et SmallArray().

◆ ~SmallArray()

template<typename T, Int32 NbElement = 32>
Arcane::SmallArray< T, NbElement >::~SmallArray ( )
inlineoverride

Détruit l'instance.

Définition à la ligne 202 du fichier SmallArray.h.

Références Arcane::AbstractArray< T >::_reset().

Documentation des fonctions membres

◆ operator=() [1/5]

template<typename T, Int32 NbElement = 32>
void Arcane::SmallArray< T, NbElement >::operator= ( const Array< T > & rhs)
inline

Copie les valeurs de rhs dans cette instance.

Définition à la ligne 172 du fichier SmallArray.h.

Références Arcane::Array< T >::constSpan(), et Arcane::Array< T >::copy().

◆ operator=() [2/5]

template<typename T, Int32 NbElement = 32>
void Arcane::SmallArray< T, NbElement >::operator= ( const ArrayView< T > & rhs)
inline

Copie les valeurs de la vue rhs dans cette instance.

Définition à la ligne 178 du fichier SmallArray.h.

Références Arcane::Array< T >::copy().

◆ operator=() [3/5]

template<typename T, Int32 NbElement = 32>
void Arcane::SmallArray< T, NbElement >::operator= ( const ConstArrayView< T > & rhs)
inline

Copie les valeurs de la vue rhs dans cette instance.

Définition à la ligne 190 du fichier SmallArray.h.

Références Arcane::Array< T >::copy().

◆ operator=() [4/5]

template<typename T, Int32 NbElement = 32>
void Arcane::SmallArray< T, NbElement >::operator= ( const Span< const T > & rhs)
inline

Copie les valeurs de la vue rhs dans cette instance.

Définition à la ligne 196 du fichier SmallArray.h.

Références Arcane::Array< T >::copy().

◆ operator=() [5/5]

template<typename T, Int32 NbElement = 32>
void Arcane::SmallArray< T, NbElement >::operator= ( const Span< T > & rhs)
inline

Copie les valeurs de la vue rhs dans cette instance.

Définition à la ligne 184 du fichier SmallArray.h.

Références Arcane::Array< T >::copy().

Documentation des données membres

◆ MemorySize

template<typename T, Int32 NbElement = 32>
Int32 Arcane::SmallArray< T, NbElement >::MemorySize = NbElement * SizeOfType
staticconstexpr

Définition à la ligne 97 du fichier SmallArray.h.


La documentation de cette classe a été générée à partir du fichier suivant :