{{indexmenu_n>13}} ====== array ====== arrayはcliが提供する配列です。以下の機能があります。 * 配列の要素数を知ることができます。 * 可変長の引数をarrayで受け取れます。 * for eachが使えます。 int型のarrayを要素数4で作る場合は以下のようにします。 array^ a = gcnew array(4); array^ b = gcnew array(4) {1,2,3,4}; array^ c = gcnew array{1,2,3,4}; arrayは常にハンドルを用いて利用しなければなりません。またarrayの型にref classを用いることはできず、ref classのハンドルを用いなければなりません。 array^ oa ; // エラー array^ oa ; // OK arrayの要素数を知るには、Lengthを使います。 array^ c = gcnew array{1,2,3,4}; int len = c->Length; for eachを以下のようにして使えます。 array^ c = gcnew array{1,2,3,4}; for each(int i in c) { System::Console::WriteLine(i); } これは以下と同じです。 array^ c = gcnew array{1,2,3,4}; for ( int i=0 ; i < c->Length; ++i ) { System::Console::WriteLine(c[i]); } 2次元arrayは以下のように作ります。 array^ a2 = gcnew array(4,4); array^ b2 = gcnew array{ {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 ^args) { array^ ia = gcnew array{1,2,3,4,5}; Array::Reverse(ia); Array::Sort(ia); Array::ForEach(ia, gcnew Action(printout)); array^ ia2 = Array::ConvertAll(ia, gcnew Converter(conv)); Array::ForEach(ia2, gcnew Action(printout)); int i4 = Array::Find(ia2, gcnew Predicate(pred)); return 0; }