System::Array‑klass

Array class

Klass som representerar en array‑datastruktur. Objekt av denna klass bör endast allokeras med funktionerna System::MakeArray() och System::MakeObject(). Skapa aldrig en instans av denna typ på stacken eller med operatorn new, eftersom det kan leda till körningsfel och/eller påståendefel. Omslut alltid denna klass i en System::SmartPtr‑pekare och använd pekaren för att skicka den till funktioner som argument.

template<typename T>class Array : public virtual System::Object,
                                  public System::Collections::Generic::IList<T>
ParameterBeskrivning
TTyp av element i en array

Nested classes

Metoder

MetodBeskrivning
Add(const T&) overrideStöds inte eftersom arrayen som representeras av det aktuella objektet är skrivskyddad.
Array()Skapar en tom array.
Array(int, const T&)Konstruktor med fyllning.
Array(typename std::enable_if<std::is_arithmetic<T>::value&&std::is_arithmetic<ValueType>::value&&std::is_convertible<ValueType, T>::value, int>::type, ValueType)Konstruktor med fyllning.
Array(int, const T)Konstruktor med fyllning.
Array(vector_t&&)Flyttkonstruktor.
Array(const vector_t&)Kopieringskonstruktor.
Array(const std::vector<Q>&)Skapar ett Array-objekt och fyller det med värden kopierade från ett std::vector‑objekt vars värdetyp är densamma som T men skiljer sig från UnderlyingType.
Array(std::vector<Q>&&)Skapar ett Array-objekt och fyller det med värden flyttade från ett std::vector‑objekt vars värdetyp är densamma som T men skiljer sig från UnderlyingType.
Array(std::initializer_list<UnderlyingType>)Skapar ett Array-objekt och fyller det med värden från den specificerade initieringslistan som innehåller element av typen UnderlyingType.
Array(const std::array<UnderlyingType, InitArraySize>&)Skapar ett Array-objekt och fyller det med värden från den angivna arrayen som innehåller element av typen UnderlyingType.
Array(std::initializer_list<bool>, int)Skapar ett Array-objekt och fyller det med värden från den angivna initieringslistan som innehåller element av typen bool.
begin()Returnerar en iterator till det första elementet i behållaren. Om behållaren är tom kommer den returnerade iteratorn att vara lika med end().
begin() constReturnerar en iterator till det första elementet i den konstantkvalificerade behållaren. Om behållaren är tom kommer den returnerade iteratorn att vara lika med end().
static BinarySearch(System::ArrayPtr<T>, const T&)Utför binärsökning i den sorterade arrayen.
static BinarySearch(System::ArrayPtr<T>, const Y&, const SharedPtr<Collections::Generic::IComparer<Z>>&)INTE IMPLEMENTERAT.
cbegin() constReturnerar en iterator till det första konstantkvalificerade elementet i behållaren. Om behållaren är tom kommer den returnerade iteratorn att vara lika med cend().
cend() constReturnerar en iterator till elementet som följer efter det sista elementet i behållaren. Detta element fungerar som en platshållare; ett försök att komma åt det resulterar i odefinierat beteende.
Clear() overrideStöds inte eftersom arrayen som representeras av det aktuella objektet är skrivskyddad.
static Clear(const ArrayPtr<Type>&, int, int)Ersätter count värden med start vid index startIndex i den angivna arrayen med standardvärden.
Clone()Klonar arrayen.
static ConstrainedCopy(const ArrayPtr<SrcType>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Kopierar ett intervall av element från en System.Array med start vid den angivna källan.
Contains(const T&) const overrideAvgör om det angivna objektet finns i arrayen.
static ConvertAll(ArrayPtr<InputType>, Converter<InputType, OutputType>)Skapar ett nytt Array-objekt och fyller det med element från den angivna arrayen konverterade till typen OutputType med hjälp av den angivna konverteringsdelegeringen.
static ConvertAll(ArrayPtr<InputType>, std::function<OutputType(InputType)>)Skapar ett nytt Array-objekt och fyller det med element från den angivna arrayen konverterade till typen OutputType med hjälp av det angivna konverteringsfunktionsobjektet.
static Copy(const ArrayPtr<SrcType>&, const ArrayPtr<DstType>&, int64_t)Kopierar det angivna antalet element från källarrayen till destinationsarrayen.
static Copy(System::Details::ArrayView<SrcType>, const ArrayPtr<DstType>&, int64_t)Kopierar det angivna antalet element från källarrayvyn till destinationsarrayen.
static Copy(const ArrayPtr<SrcType>&, System::Details::ArrayView<DstType>, int64_t)Kopierar det angivna antalet element från källarrayen till destinationsarrayvyn.
static Copy(System::Details::ArrayView<SrcType>, System::Details::ArrayView<DstType>, int64_t)Kopierar det angivna antalet element från källarrayvyn till destinationsarrayvyn.
static Copy(System::Details::StackArray<SrcType, N>&, const ArrayPtr<DstType>&, int64_t)Kopierar det angivna antalet element från källarrayen på stacken till destinationsarrayen.
static Copy(const ArrayPtr<SrcType>&, System::Details::StackArray<DstType, N>&, int64_t)Kopierar det angivna antalet element från källarrayen till destinationsarrayen på stacken.
static Copy(System::Details::StackArray<SrcType, NS>&, System::Details::StackArray<DstType, ND>&, int64_t)Kopierar det angivna antalet element från källarrayen på stacken till destinationsarrayen på stacken.
static Copy(const ArrayPtr<SrcType>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Kopierar ett angivet antal element från källarrayen med start vid det angivna indexet till den angivna positionen i destinationsarrayen.
static Copy(System::Details::ArrayView<SrcType>, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Kopierar ett angivet antal element från källarrayvyn med start vid det angivna indexet till den angivna positionen i destinationsarrayen.
static Copy(const ArrayPtr<SrcType>&, int64_t, System::Details::ArrayView<DstType>, int64_t, int64_t)Kopierar ett angivet antal element från källarrayen med start vid det angivna indexet till den angivna positionen i destinationsarrayvyn.
static Copy(System::Details::ArrayView<SrcType>, int64_t, System::Details::ArrayView<DstType>, int64_t, int64_t)Kopierar ett angivet antal element från källarrayvyn med start vid det angivna indexet till den angivna positionen i destinationsarrayvyn.
static Copy(System::Details::StackArray<SrcType, N>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)Kopierar ett angivet antal element från källarrayen på stacken med start vid det angivna indexet till den angivna positionen i destinationsarrayen.
static Copy(const ArrayPtr<SrcType>&, int64_t, System::Details::StackArray<DstType, N>&, int64_t, int64_t)Kopierar ett angivet antal element från källarrayen med start vid det angivna indexet till den angivna positionen i destinationsarrayen på stacken.
static Copy(System::Details::StackArray<SrcType, NS>&, int64_t, System::Details::StackArray<DstType, ND>&, int64_t, int64_t)Kopierar ett angivet antal element från källarrayen på stacken med start vid det angivna indexet till den angivna positionen i destinationsarrayen på stacken.
static Copy(System::Details::ArrayView<SrcType>&, int64_t, System::Details::StackArray<DstType, ND>&, int64_t, int64_t)Kopierar ett angivet antal element från källarrayvyn med start vid det angivna indexet till den angivna positionen i destinationsarrayen på stacken.
CopyTo(ArrayPtr<T>, int) overrideKopierar alla element i den aktuella arrayen till den angivna destinationsarrayen. Elementen infogas i destinationsarrayen med start vid det index som anges av argumentet arrayIndex.
CopyTo(const ArrayPtr<DstType>&, int64_t) constKopierar alla element i den aktuella arrayen till den angivna destinationsarrayen. Elementen infogas i destinationsarrayen med start vid index som anges av argumentet dstIndex.
CopyTo(const System::Details::ArrayView<DstType>&, int64_t) constKopierar alla element i den aktuella arrayen till den angivna destinationsarrayvyn. Elementen infogas i destinationsarrayvyn med start vid index som anges av argumentet dstIndex.
CopyTo(const ArrayPtr<DstType>&, int64_t, int64_t, int64_t) constKopierar ett angivet antal element från den aktuella arrayen med start på en angiven position till den angivna destinationsarrayen. Elementen infogas i destinationsarrayen med start vid index som anges av argumentet dstIndex.
CopyTo(const System::Details::ArrayView<DstType>&, int64_t, int64_t, int64_t) constKopierar ett angivet antal element från den aktuella arrayen med start på en angiven position till den angivna destinationsarrayvyn. Elementen infogas i destinationsarrayvyn med start vid index som anges av argumentet dstIndex.
Count() constReturnerar ett tal som representerar det totala antalet alla element i alla dimensioner av arrayen.
crbegin() constReturnerar en omvänd iterator till det första elementet i den omvända behållaren. Den motsvarar det sista elementet i den icke‑omvända behållaren. Om behållaren är tom är den returnerade iteratorn lika med crend().
crend() constReturnerar en omvänd iterator till elementet som följer efter det sista elementet i den omvända behållaren. Den motsvarar elementet som föregår det första elementet i den icke‑omvända behållaren. Detta element fungerar som en platshållare; ett försök att komma åt det resulterar i odefinierat beteende.
data()Returnerar en referens till den interna datastrukturen som används för att lagra arrayens element.
data() constReturnerar en konstant referens till den interna datastrukturen som används för att lagra arrayens element.
data_ptr()Returnerar en rå pekare till början av minnesbufferten där arrayens element lagras.
data_ptr() constReturnerar en konstant rå pekare till början av minnesbufferten där arrayens element lagras.
end()Returnerar en iterator till elementet som följer efter det sista elementet i behållaren. Detta element fungerar som en platshållare; ett försök att komma åt det resulterar i odefinierat beteende.
end() constReturnerar en iterator till elementet som följer efter det sista elementet i den konstantkvalificerade behållaren. Detta element fungerar som en platshållare; ett försök att komma åt det resulterar i odefinierat beteende.
static Exists(ArrayPtr<T>, std::function<bool(T)>)Bestämmer om det angivna Array-objektet innehåller ett element som uppfyller kraven för det angivna predikatet.
static Find(System::ArrayPtr<T>, System::Predicate<T>)Söker efter det första elementet i den angivna arrayen som uppfyller villkoren för det angivna predikatet.
static FindAll(System::ArrayPtr<T>, System::Predicate<T>)Hämtar alla element som matchar villkoren som definierats av det angivna predikatet.
static FindIndex(System::ArrayPtr<T>, System::Predicate<T>)Söker efter det första elementet i den angivna arrayen som uppfyller villkoren för det angivna predikatet.
static ForEach(const ArrayPtr<T>&, System::Action<T>)Utför den angivna åtgärden på varje element i den angivna arrayen.
get_Count() const overrideReturnerar storleken på arrayen.
get_IsReadOnly() const overrideIndikerar om arrayen är skrivskyddad.
get_Length() constReturnerar ett 32-bitars heltal som representerar det totala antalet alla element i alla dimensioner av arrayen.
get_LongLength() constReturnerar ett 64-bitars heltal som representerar det totala antalet alla element i alla dimensioner av arrayen.
get_Rank() constINTE IMPLEMENTERAT.
GetEnumerator() overrideReturnerar en pekare till Enumerator-objektet som tillhandahåller IEnumerator-gränssnittet för elementen i den array som representeras av det aktuella objektet.
GetLength(int)Returnerar antalet element i den angivna dimensionen.
GetLongLength(int)Returnerar antalet element i den angivna dimensionen som ett 64-bitars heltal.
GetLowerBound(int) constReturnerar den lägre gränsen för den angivna dimensionen.
GetSizeTLength() constReturnerar en std::size_t-variabel som representerar det totala antalet alla element i alla dimensioner av arrayen.
GetUpperBound(int)Returnerar den övre gränsen för den angivna dimensionen.
idx_get(int) const overrideReturnerar objektet vid det angivna indexet.
idx_set(int, T) overrideSätter det angivna värdet som objektet i arrayen vid det angivna indexet.
IndexOf(const T&) const overrideBestämmer indexet för den första förekomsten av det angivna objektet i arrayen.
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&)Bestämmer indexet för den första förekomsten av angivet objekt i arrayen.
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int)Bestämmer indexet för den första förekomsten av det angivna objektet i arrayen med start från det angivna indexet.
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int, int)Bestämmer indexet för den första förekomsten av det angivna objektet i ett intervall av objekt i arrayen som anges av startindexet och antalet element i intervallet.
Init(const T)Fyller arrayen som representeras av det aktuella objektet med värdena från den angivna arrayen.
Initialize()Fyller arrayen med standardkonstruktade objekt av typen T.
Insert(int, const T&) overrideStöds inte eftersom arrayen som representeras av det aktuella objektet är skrivskyddad.
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int, int)Bestämmer indexet för den sista förekomsten av det angivna objektet i ett intervall av objekt i arrayen som anges av startindexet och antalet element i intervallet.
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int)Bestämmer indexet för den sista förekomsten av det angivna objektet i arrayen med start från det angivna indexet.
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&)Bestämmer indexet för den sista förekomsten av det angivna objektet i arrayen.
Max() constHittar det största elementet i arrayen med hjälp av operator<() för att jämföra element.
Min() constHittar det minsta elementet i arrayen med hjälp av operator<() för att jämföra element.
operator[](int)Returnerar ett objekt på det angivna indexet.
operator[](int) constReturnerar ett objekt på det angivna indexet.
rbegin()Returnerar en omvänd iterator till det första elementet i den omvända behållaren. Den motsvarar det sista elementet i den icke‑omvända behållaren. Om behållaren är tom är den returnerade iteratorn lika med rend().
rbegin() constReturnerar en omvänd iterator till det första elementet i den omvända behållaren. Den motsvarar det sista elementet i den icke‑omvända behållaren. Om behållaren är tom är den returnerade iteratorn lika med rend().
Remove(const T&) overrideStöds inte eftersom arrayen som representeras av det aktuella objektet är skrivskyddad.
RemoveAt(int) overrideStöds inte eftersom arrayen som representeras av det aktuella objektet är skrivskyddad.
rend()Returnerar en omvänd iterator till elementet som följer efter det sista elementet i den omvända behållaren. Den motsvarar elementet som föregår det första elementet i den icke‑omvända behållaren. Detta element fungerar som en platshållare; ett försök att komma åt det resulterar i odefinierat beteende.
rend() constReturnerar en omvänd iterator till elementet som följer efter det sista elementet i den omvända behållaren. Den motsvarar elementet som föregår det första elementet i den icke‑omvända behållaren. Detta element fungerar som en platshållare; ett försök att komma åt det resulterar i odefinierat beteende.
static Resize(ArrayPtr<Type>&, int)Ändrar storleken på den angivna arrayen till det angivna värdet eller skapar en ny array med angiven storlek.
static Reverse(const ArrayPtr<Type>&)Vänder på elementen i den angivna arrayen.
static Reverse(const ArrayPtr<Type>&, int, int)Vänder på ett intervall av element i den angivna arrayen.
SetTemplateWeakPtr(uint32_t) overrideGör så att arrayen behandlar lagrade pekare som svaga (om tillämpligt).
SetValue(const T&, int)Sätter värdet på elementet på det angivna indexet.
static Sort(const ArrayPtr<Type>&)Sorterar element i den angivna arrayen med standardjämförare.
static Sort(const ArrayPtr<Type>&, int, int)Sorterar ett intervall av element i den angivna arrayen med standardjämförare.
static Sort(const ArrayPtr<Type>&, const SharedPtr<System::Collections::Generic::IComparer<T>>&)Sorterar element i den angivna arrayen med angiven jämförare.
static Sort(const ArrayPtr<Type>&, const SharedPtr<System::Collections::Generic::IComparer<Y>>&)INTE IMPLEMENTERAT.
static Sort(const ArrayPtr<TKey>&, const ArrayPtr<TValue>&)Sorterar två arrayer, en som innehåller nycklar och den andra - motsvarande objekt, baserat på värdena i arrayen som innehåller nycklar, vars element jämförs med operator<.
static Sort(const ArrayPtr<TKey>&, const ArrayPtr<TValue>&, int, int)Sorterar två arrayer, en som innehåller nycklar och den andra - motsvarande objekt, baserat på värdena i arrayen som innehåller nycklar, vars element jämförs med standardjämförare.
static TrueForAll(System::ArrayPtr<T>, System::Predicate<T>)Bestämmer om alla element i den angivna arrayen uppfyller villkoren som definieras av det angivna predikatet.
virtualizeBeginConstIterator() const overrideHämtar implementationen av begin const iterator för den aktuella behållaren.
virtualizeBeginIterator() overrideHämtar implementationen av begin iterator för den aktuella behållaren.
virtualizeEndConstIterator() const overrideHämtar implementationen av end const iterator för den aktuella behållaren.
virtualizeEndIterator() overrideHämtar implementationen av end iterator för den aktuella behållaren.

Typedefs

TypedefBeskrivning
const_iteratorTyp för konstant iterator.
const_reverse_iteratorTyp för konstant omvänd iterator.
EnumerablePtrEtt alias för delad pekartyp som pekar på ett IEnumerable-objekt som innehåller element av typen T.
EnumeratorPtrEtt alias för delad pekartyp som pekar på IEnumerator-objekt som innehåller element av typen T.
iteratorIterator-typ.
reverse_iteratorOmvänd iterator-typ.
UnderlyingTypeAlias för den typ som används för att representera varje element i arrayen.
ValueTypeAlias för typen av elementen i arrayen.

Anmärkningar

#include <system/array.h>
#include <system/smart_ptr.h>

using namespace System;

void Print(const SmartPtr<Array<int32_t>> &arrayPtr)
{
  for (auto item: arrayPtr)
  {
    std::cout << item << ' ';
  }
  std::cout << std::endl;
}

int main()
{
  // Skapa och fyll arrayen.
  auto arrayPtr = MakeObject<Array<int32_t>>(5, 0);
  for (auto i = 0; i < arrayPtr->get_Length(); ++i)
  {
    arrayPtr[i] = 5 - i;
  }

  // Skriv ut arrayens element.
  Print(arrayPtr);

  // Sortera arrayens element i stigande ordning.
  Array<int32_t>::Sort(arrayPtr);

  // Skriv ut arrayens element.
  Print(arrayPtr);

  // Skriv ut antalet element i arrayen.
  std::cout << arrayPtr->get_Length() << std::endl;

  // Skriv ut indexet för det element som är lika med 4.
  std::cout << arrayPtr->IndexOf(4) << std::endl;

  // Ändra storleken på arrayen.
  Array<int32_t>::Resize(arrayPtr, 3);

  // Skriv ut arrayens element.
  Print(arrayPtr);

  return 0;
}
/*
This code example produces the following output:
5 4 3 2 1
1 2 3 4 5
5
3
1 2 3
*/

Se även