ユーザ用ツール

サイト用ツール


サイドバー

C++/CLI

CLR

実用編

その他

cli:array

array

arrayはcliが提供する配列です。以下の機能があります。

  • 配列の要素数を知ることができます。
  • 可変長の引数をarrayで受け取れます。
  • for eachが使えます。

int型のarrayを要素数4で作る場合は以下のようにします。

array<int>^ a = gcnew array<int>(4);
array<int>^ b = gcnew array<int>(4) {1,2,3,4};
array<int>^ c = gcnew array<int>{1,2,3,4};

arrayは常にハンドルを用いて利用しなければなりません。またarrayの型にref classを用いることはできず、ref classのハンドルを用いなければなりません。

array<Object>^ oa ;    // エラー
array<Object^>^ oa ;   // OK

arrayの要素数を知るには、Lengthを使います。

array<int>^ c = gcnew array<int>{1,2,3,4};
int len = c->Length;

for eachを以下のようにして使えます。

array<int>^ c = gcnew array<int>{1,2,3,4};
for each(int i in c)
{
    System::Console::WriteLine(i);
}

これは以下と同じです。

array<int>^ c = gcnew array<int>{1,2,3,4};
for ( int i=0 ; i < c->Length; ++i )
{
    System::Console::WriteLine(c[i]);
}

2次元arrayは以下のように作ります。

array<int,2>^ a2 = gcnew array<int,2>(4,4);
array<int,2>^ b2 = gcnew array<int,2>{ {1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4} };

System::Arrayのメソッドでarrayを色々する。

#include "stdafx.h"
 
using namespace System;
 
void printout(int i)
{
	Console::WriteLine(i);
}
int conv(int i)
{
	return i*2;
}
 
bool pred(int i)
{
	return i==4;
}
 
int main(array<System::String ^> ^args)
{
	array<int>^ ia = gcnew array<int>{1,2,3,4,5};
 
	Array::Reverse(ia);
	Array::Sort(ia);
 
    Array::ForEach<int>(ia, gcnew Action<int>(printout));
 
 
	array<int>^ ia2 = Array::ConvertAll(ia, gcnew Converter<int,int>(conv));
    Array::ForEach<int>(ia2, gcnew Action<int>(printout));
 
 
	int i4 = Array::Find(ia2, gcnew Predicate<int>(pred));
 
 
    return 0;
}



/var/www/html/virtual/cppcli/data/pages/cli/array.txt · 最終更新: 2013/12/23 09:08 (外部編集)