System::ArraySegment‑Klasse

ArraySegment class

Stellt ein Segment des eindimensionalen Arrays dar. Dieser Typ sollte auf dem Stack alloziert und an Funktionen per Wert oder Referenz übergeben werden. Verwenden Sie niemals die System::SmartPtr-Klasse, um Objekte dieses Typs zu verwalten.

template<typename T>class ArraySegment : public System::Object
ParameterBeschreibung
TDer Typ der Elemente des Array‑Segments.

Methoden

MethodeBeschreibung
ArraySegment(System::ArrayPtr<T>)
ArraySegment(System::ArrayPtr<T>, int32_t, int32_t)
ArraySegment()
Equals(System::SharedPtr<Object>) override
Equals(ArraySegment<T>)
get_Array()
get_Count()
get_Offset()
GetHashCode() const overrideAnalog zur C#-Methode Object.GetHashCode(). Ermöglicht das Hashen benutzerdefinierter Objekte.

Hinweise

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

using namespace System;

void Print(const SmartPtr<ArraySegment<String>> &segment)
{
  for (auto i = segment->get_Offset(); i < segment->get_Offset() + segment->get_Count(); i++)
  {
    std::cout << segment->get_Array()[i] << ' ';
  }
  std::cout << std::endl;
}

int main()
{
  // Erstelle und fülle das Array.
  auto array = System::MakeObject<Array<String>>(3);
  array[0] = u"First";
  array[1] = u"Second";
  array[2] = u"Third";

  // Erstelle das Array‑Segment, das das gesamte Array enthält.
  auto fullArray = MakeObject<ArraySegment<String>>(array);

  // Gib die Elemente des Array‑Segments aus.
  Print(fullArray);

  // Erstelle das Array‑Segment.
  auto segment = MakeObject<ArraySegment<String>>(array, 1, 2);

  // Gib die Elemente des Array‑Segments aus.
  Print(segment);

  return 0;
}
/*
This code example produces the following output:
First Second Third
Second Third
*/

Siehe auch