System::Array クラス

Array class

配列データ構造を表すクラスです。このクラスのオブジェクトは System::MakeArray()System::MakeObject() 関数を使用してのみ割り当てるべきです。スタック上や operator new を使用してこの型のインスタンスを作成しないでください。そうしないと実行時エラーやアサーション障害が発生します。常にこのクラスを System::SmartPtr ポインタでラップし、関数の引数として渡す際にそのポインタを使用してください。

template<typename T>class Array : public virtual System::Object,
                                  public System::Collections::Generic::IList<T>
パラメーター説明
T配列の要素の型

Nested classes

メソッド

メソッド説明
Add(const T&) override現在のオブジェクトが表す配列は読み取り専用のため、サポートされていません。
Array()空の配列を構築します。
Array(int, const T&)初期化コンストラクタ。
Array(typename std::enable_if<std::is_arithmetic<T>::value&&std::is_arithmetic<ValueType>::value&&std::is_convertible<ValueType, T>::value, int>::type, ValueType)初期化コンストラクタ。
Array(int, const T)初期化コンストラクタ。
Array(vector_t&&)ムーブコンストラクタ。
Array(const vector_t&)コピーコンストラクタ。
Array(const std::vector<Q>&)Array オブジェクトを構築し、値の型が T と同じで UnderlyingType とは異なる std::vector オブジェクトからコピーされた値で埋めます。
Array(std::vector<Q>&&)Array オブジェクトを構築し、値の型が T と同じで UnderlyingType とは異なる std::vector オブジェクトからムーブされた値で埋めます。
Array(std::initializer_list<UnderlyingType>)Array オブジェクトを構築し、UnderlyingType 型の要素を含む指定されたイニシャライザリストから値で埋めます。
Array(const std::array<UnderlyingType, InitArraySize>&)指定された配列から UnderlyingType 型の要素を含む値で、Array オブジェクトを構築し、埋め込みます。
Array(std::initializer_list<bool>, int)bool 型の要素を含む指定されたイニシャライザリストから値で、Array オブジェクトを構築し、埋め込みます。
begin()コンテナの最初の要素へのイテレータを返します。コンテナが空の場合、返されるイテレータは end() と等しくなります。
begin() constconst 修飾されたコンテナの最初の要素へのイテレータを返します。コンテナが空の場合、返されるイテレータは end() と等しくなります。
static BinarySearch(System::ArrayPtr<T>, const T&)ソート済み配列で二分探索を実行します。
static BinarySearch(System::ArrayPtr<T>, const Y&, const SharedPtr<Collections::Generic::IComparer<Z>>&)未実装です。
cbegin() constコンテナの最初の const 修飾要素へのイテレータを返します。コンテナが空の場合、返されるイテレータは cend() と等しくなります。
cend() constコンテナの最後の要素の次の要素へのイテレータを返します。この要素はプレースホルダーとして機能し、アクセスしようとすると未定義の動作になります。
Clear() override現在のオブジェクトが表す配列は読み取り専用のため、サポートされていません。
static Clear(const ArrayPtr<Type>&, int, int)指定された配列の startIndex インデックスから始まる count 個の値を既定値に置き換えます。
Clone()配列をクローンします。
static ConstrainedCopy(const ArrayPtr<SrcType>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)指定されたソースから開始する System.Array の要素範囲をコピーします。
Contains(const T&) const override指定された項目が配列に含まれているかどうかを判定します。
static ConvertAll(ArrayPtr<InputType>, Converter<InputType, OutputType>)指定されたコンバータデリゲートを使用して、指定された配列の要素を OutputType 型に変換したもので、新しい Array オブジェクトを構築し、埋め込みます。
static ConvertAll(ArrayPtr<InputType>, std::function<OutputType(InputType)>)指定されたコンバータ関数オブジェクトを使用して、指定された配列の要素を OutputType 型に変換したもので、新しい Array オブジェクトを構築し、埋め込みます。
static Copy(const ArrayPtr<SrcType>&, const ArrayPtr<DstType>&, int64_t)ソース配列からデスティネーション配列へ、指定された数の要素をコピーします。
static Copy(System::Details::ArrayView<SrcType>, const ArrayPtr<DstType>&, int64_t)ソース配列ビューからデスティネーション配列へ、指定された数の要素をコピーします。
static Copy(const ArrayPtr<SrcType>&, System::Details::ArrayView<DstType>, int64_t)ソース配列からデスティネーション配列ビューへ、指定された数の要素をコピーします。
static Copy(System::Details::ArrayView<SrcType>, System::Details::ArrayView<DstType>, int64_t)ソース配列ビューからデスティネーション配列ビューへ、指定された数の要素をコピーします。
static Copy(System::Details::StackArray<SrcType, N>&, const ArrayPtr<DstType>&, int64_t)スタック上のソース配列からデスティネーション配列へ、指定された数の要素をコピーします。
static Copy(const ArrayPtr<SrcType>&, System::Details::StackArray<DstType, N>&, int64_t)ソース配列からスタック上のデスティネーション配列へ、指定された数の要素をコピーします。
static Copy(System::Details::StackArray<SrcType, NS>&, System::Details::StackArray<DstType, ND>&, int64_t)スタック上のソース配列からスタック上のデスティネーション配列へ、指定された数の要素をコピーします。
static Copy(const ArrayPtr<SrcType>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)指定されたインデックスから開始するソース配列の指定された数の要素を、デスティネーション配列の指定された位置へコピーします。
static Copy(System::Details::ArrayView<SrcType>, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)指定されたインデックスから開始するソース配列ビューの指定された数の要素を、デスティネーション配列の指定された位置へコピーします。
static Copy(const ArrayPtr<SrcType>&, int64_t, System::Details::ArrayView<DstType>, int64_t, int64_t)指定されたインデックスから開始するソース配列の指定された数の要素を、デスティネーション配列ビューの指定された位置へコピーします。
static Copy(System::Details::ArrayView<SrcType>, int64_t, System::Details::ArrayView<DstType>, int64_t, int64_t)指定されたインデックスから開始するソース配列ビューの指定された数の要素を、デスティネーション配列ビューの指定された位置へコピーします。
static Copy(System::Details::StackArray<SrcType, N>&, int64_t, const ArrayPtr<DstType>&, int64_t, int64_t)スタック上のソース配列で、指定されたインデックスから開始する指定された数の要素を、デスティネーション配列の指定された位置へコピーします。
static Copy(const ArrayPtr<SrcType>&, int64_t, System::Details::StackArray<DstType, N>&, int64_t, int64_t)指定されたインデックスから開始するソース配列の指定された数の要素を、スタック上のデスティネーション配列の指定された位置へコピーします。
static Copy(System::Details::StackArray<SrcType, NS>&, int64_t, System::Details::StackArray<DstType, ND>&, int64_t, int64_t)スタック上のソース配列で、指定されたインデックスから開始する指定された数の要素を、スタック上のデスティネーション配列の指定された位置へコピーします。
static Copy(System::Details::ArrayView<SrcType>&, int64_t, System::Details::StackArray<DstType, ND>&, int64_t, int64_t)ソース配列ビューで、指定されたインデックスから開始する指定された数の要素を、スタック上のデスティネーション配列の指定された位置へコピーします。
CopyTo(ArrayPtr<T>, int) override現在の配列のすべての要素を指定されたデスティネーション配列へコピーします。要素は arrayIndex 引数で指定されたインデックスからデスティネーション配列に挿入されます。
CopyTo(const ArrayPtr<DstType>&, int64_t) const現在の配列のすべての要素を指定された宛先配列にコピーします。要素は、dstIndex 引数で指定されたインデックスから宛先配列に挿入されます。
CopyTo(const System::Details::ArrayView<DstType>&, int64_t) const現在の配列のすべての要素を指定された宛先配列ビューにコピーします。要素は、dstIndex 引数で指定されたインデックスから宛先配列ビューに挿入されます。
CopyTo(const ArrayPtr<DstType>&, int64_t, int64_t, int64_t) const現在の配列から指定された位置で開始する指定数の要素を、指定された宛先配列にコピーします。要素は、dstIndex 引数で指定されたインデックスから宛先配列に挿入されます。
CopyTo(const System::Details::ArrayView<DstType>&, int64_t, int64_t, int64_t) const現在の配列から指定された位置で開始する指定数の要素を、指定された宛先配列ビューにコピーします。要素は、dstIndex 引数で指定されたインデックスから宛先配列ビューに挿入されます。
Count() const配列のすべての次元における要素の総数を表す数値を返します。
crbegin() const逆順コンテナの最初の要素への逆イテレータを返します。これは逆順でないコンテナの最後の要素に対応します。コンテナが空の場合、返されるイテレータは crend() と等しくなります。
crend() const逆順コンテナの最後の要素の次の要素への逆イテレータを返します。これは逆順でないコンテナの最初の要素の前の要素に対応します。この要素はプレースホルダーとして機能し、アクセスしようとすると未定義の動作になります。
data()配列要素を格納するために使用される内部データ構造への参照を返します。
data() const配列要素を格納するために使用される内部データ構造への定数参照を返します。
data_ptr()配列要素が格納されているメモリバッファの先頭への生ポインタを返します。
data_ptr() const配列要素が格納されているメモリバッファの先頭への定数生ポインタを返します。
end()コンテナの最後の要素の次の要素へのイテレータを返します。この要素はプレースホルダーとして機能し、アクセスしようとすると未定義の動作になります。
end() constconst 修飾されたコンテナの最後の要素の次の要素へのイテレータを返します。この要素はプレースホルダーとして機能し、アクセスしようとすると未定義の動作になります。
static Exists(ArrayPtr<T>, std::function<bool(T)>)指定されたArrayオブジェクトが、指定された述語の要件を満たす要素を含んでいるかどうかを判定します。
static Find(System::ArrayPtr<T>, System::Predicate<T>)指定された配列内で、指定された述語の条件を満たす最初の要素を検索します。
static FindAll(System::ArrayPtr<T>, System::Predicate<T>)指定された述語で定義された条件に一致するすべての要素を取得します。
static FindIndex(System::ArrayPtr<T>, System::Predicate<T>)指定された配列内で、指定された述語の条件を満たす最初の要素を検索します。
static ForEach(const ArrayPtr<T>&, System::Action<T>)指定された配列の各要素に対して、指定されたアクションを実行します。
get_Count() const override配列のサイズを返します。
get_IsReadOnly() const override配列が読み取り専用かどうかを示します。
get_Length() const配列のすべての次元における要素の総数を表す 32 ビット整数を返します。
get_LongLength() const配列のすべての次元における要素の総数を表す 64 ビット整数を返します。
get_Rank() const未実装です。
GetEnumerator() override現在のオブジェクトが表す配列の要素に対して IEnumerator インターフェイスを提供するEnumeratorオブジェクトへのポインタを返します。
GetLength(int)指定された次元の要素数を返します。
GetLongLength(int)指定された次元の要素数を 64 ビット整数として返します。
GetLowerBound(int) const指定された次元の下限を返します。
GetSizeTLength() const配列のすべての次元における要素の総数を表す std::size_t 変数を返します。
GetUpperBound(int)指定された次元の上限を返します。
idx_get(int) const override指定されたインデックスの項目を返します。
idx_set(int, T) override指定されたインデックスの配列項目として、指定された値を設定します。
IndexOf(const T&) const override配列内で指定された項目が最初に出現するインデックスを決定します。
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&)配列内で指定された項目が最初に出現するインデックスを決定します。
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int)指定されたインデックスから開始して、配列内で指定された項目が最初に出現するインデックスを決定します。
static IndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int, int)開始インデックスと範囲内の要素数で指定された配列の項目範囲内で、指定された項目が最初に出現するインデックスを決定します。
Init(const T)現在のオブジェクトが表す配列を、指定された配列の値で埋めます。
Initialize()T 型のデフォルト構築オブジェクトで配列を埋めます。
Insert(int, const T&) override現在のオブジェクトが表す配列は読み取り専用のため、サポートされていません。
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int, int)開始インデックスと範囲内の要素数で指定された配列の項目範囲内で、指定された項目が最後に出現するインデックスを決定します。
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&, int)指定されたインデックスから開始して、配列内で指定された項目が最後に出現するインデックスを決定します。
static LastIndexOf(const ArrayPtr<ArrayType>&, const ValueType&)配列内で指定された項目が最後に出現するインデックスを決定します。
Max() const配列内の要素を比較するために operator<() を使用して、最大の要素を見つけます。
Min() const配列内の要素を比較するために operator<() を使用して、最小の要素を見つけます。
operator[](int)指定されたインデックスの項目を返します。
operator[](int) const指定されたインデックスの項目を返します。
rbegin()逆順コンテナの最初の要素への逆イテレータを返します。これは、非逆順コンテナの最後の要素に対応します。コンテナが空の場合、返されるイテレータは rend() と等しくなります。
rbegin() const逆順コンテナの最初の要素への逆イテレータを返します。これは、非逆順コンテナの最後の要素に対応します。コンテナが空の場合、返されるイテレータは rend() と等しくなります。
Remove(const T&) override現在のオブジェクトが表す配列は読み取り専用のため、サポートされていません。
RemoveAt(int) override現在のオブジェクトが表す配列は読み取り専用のため、サポートされていません。
rend()逆順コンテナの最後の要素の次の要素への逆イテレータを返します。これは逆順でないコンテナの最初の要素の前の要素に対応します。この要素はプレースホルダーとして機能し、アクセスしようとすると未定義の動作になります。
rend() const逆順コンテナの最後の要素の次の要素への逆イテレータを返します。これは逆順でないコンテナの最初の要素の前の要素に対応します。この要素はプレースホルダーとして機能し、アクセスしようとすると未定義の動作になります。
static Resize(ArrayPtr<Type>&, int)指定された配列のサイズを指定された値に変更するか、指定されたサイズの新しい配列を作成します。
static Reverse(const ArrayPtr<Type>&)指定された配列の要素の順序を反転させます。
static Reverse(const ArrayPtr<Type>&, int, int)指定された配列の要素範囲の順序を反転させます。
SetTemplateWeakPtr(uint32_t) override配列が格納されたポインタを弱参照として扱うようにします(該当する場合)。
SetValue(const T&, int)指定されたインデックスの要素の値を設定します。
static Sort(const ArrayPtr<Type>&)デフォルトの比較子を使用して、指定された配列の要素をソートします。
static Sort(const ArrayPtr<Type>&, int, int)デフォルトの比較子を使用して、指定された配列の要素範囲をソートします。
static Sort(const ArrayPtr<Type>&, const SharedPtr<System::Collections::Generic::IComparer<T>>&)指定された比較子を使用して、指定された配列の要素をソートします。
static Sort(const ArrayPtr<Type>&, const SharedPtr<System::Collections::Generic::IComparer<Y>>&)未実装です。
static Sort(const ArrayPtr<TKey>&, const ArrayPtr<TValue>&)キーを含む配列と対応する項目を含むもう一つの配列の二つを、キー配列の値に基づいてソートします。その要素は operator< を使用して比較されます。
static Sort(const ArrayPtr<TKey>&, const ArrayPtr<TValue>&, int, int)キーを含む配列と対応する項目を含むもう一つの配列の二つを、キー配列の値に基づいてソートします。その要素はデフォルトの比較子を使用して比較されます。
static TrueForAll(System::ArrayPtr<T>, System::Predicate<T>)指定された配列のすべての要素が、指定された述語で定義された条件を満たすかどうかを判定します。
virtualizeBeginConstIterator() const override現在のコンテナの begin const イテレータの実装を取得します。
virtualizeBeginIterator() override現在のコンテナの begin イテレータの実装を取得します。
virtualizeEndConstIterator() const override現在のコンテナの end const イテレータの実装を取得します。
virtualizeEndIterator() override現在のコンテナの end イテレータの実装を取得します。

Typedefs

型定義説明
const_iteratorconst イテレータ型。
const_reverse_iteratorconst 逆イテレータ型。
EnumerablePtrT 型の要素を含む IEnumerable オブジェクトを指す共有ポインタ型のエイリアスです。
EnumeratorPtrT の要素を含む IEnumerator オブジェクトを指す共有ポインタ型のエイリアスです。
iteratorイテレータ型。
reverse_iterator逆イテレータ型。
UnderlyingType配列の各要素を表すために使用される型のエイリアスです。
ValueType配列の要素の型のエイリアスです。

備考

#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()
{
  // 配列を作成し、データを埋めます。
  auto arrayPtr = MakeObject<Array<int32_t>>(5, 0);
  for (auto i = 0; i < arrayPtr->get_Length(); ++i)
  {
    arrayPtr[i] = 5 - i;
  }

  // 配列の要素を出力します。
  Print(arrayPtr);

  // 配列の項目を昇順にソートします。
  Array<int32_t>::Sort(arrayPtr);

  // 配列の要素を出力します。
  Print(arrayPtr);

  // 配列の項目数を出力します。
  std::cout << arrayPtr->get_Length() << std::endl;

  // 値が 4 と等しい項目のインデックスを出力します。
  std::cout << arrayPtr->IndexOf(4) << std::endl;

  // 配列のサイズを変更します。
  Array<int32_t>::Resize(arrayPtr, 3);

  // 配列の要素を出力します。
  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
*/

参照