码迷,mamicode.com
首页 > 编程语言 > 详细

C++/CLI 托管C++的数组介绍【4】

时间:2015-01-01 10:09:06      阅读:332      评论:0      收藏:0      [点我收藏+]

标签:c#   c++   cli   c++cli   

托管数组实际是System::Array 类型的对象,因此在 C++/CLI 程序中创建的托管数组能使用该类提供的各种方法和属性。


[1] 定义


 [qualifiers] [cli::]array<[qualifiers]type[,dimension]> ^var;


qualifiers 

存储方式说明(可选项)。可选择的存储方式包括:mutable, volatile,const,externstatc


array

托管数组定义的关键字,该关键字是定义在cli 名 域中的。托管程序项目中 using namespace cli; 是隐含的,所以 array 的名域说明cli:: 可省略


type 

托管数组元素的类型名。可选择的类型包括类型的句柄 ^ 名,类型名或本地指针名(例如值类型的 *指针名)。


dimension

托管数组的维数。缺省维数为1,最大维数为 32。


var  

托管数组名。


例如:

array<String^> ^     strArray1;    //一维 String^ 托管数组

array<double, 2> ^   doubleArray;  //二维 double 托管数组

 

[2] 创建


var= gcnew [cli::]array<[qualifiers]type[, dimension]>(val[, val…]);


gcnew 托管对象创建运算符。

val      托管数组指定维的尺寸


例如:

strArray1        = gcnew array<String^>(50);

doubleArray   = gcnew array<double, 2>(10, 10);


托管数组的创建也可以使用类System::Array提供创建托管数组实例的方法 CreateInstance 来实现,例如: array<int> ^intArray =Array::CreateInstance( int, 100 );


[3] 初始化


array<String^, 2>strArray =gcnew array<String^, 2>{

       { L“John”, L“male”, L“New York”},

       { L“Merry”, L“female”, L“Washington”}};

 

[3] 访问


对托管数组的访问可以通过下标算符,或用类 System::Array GetValueSetValue 方法


int value         = intArray[5];

String ^str       = strArray[2, 0];

String ^str       = strArray->GetValue( 2, 0 );

strArray->SetValue(L”Henrry”, 2, 0 );

 

[3] 排序(排序方法只能用于一维数组)


System::Array静态方法 Sort定义多种版本,以便满足对数组的多种排序需要,例如,对全部内建数值元素按缺省比较算法(数值升序)排序、对部分内建数值元素按缺省比较算法(数值升序)排序、对全部内建数值元素按降序算法排序、对全部自定义元素按自定义比较算法排序等


例如:

intArray 的全部元素按升序算法排序的语句:

Array::Sort( intArray );


intArray 中下标 1 到 5 的元素按升序算法排序的语句:

Array::Sort( intArray, 1, 5);

 

[4]查找(查找方法只能用于一维数组)


System::Array提供了静态方法 BinarySearch 的多种版本,以便满足对数组的多种查询需要,例如在全部内建数值元素中查询指定元素、在部分内建数值元素中查询指定元素、在全部自定义类型元素中按自定义算法查询指定元素。


例如:

intArray 的全部元素中查询指定元素的语句:

int pos = Array::BinarySearch( intArray, (Object^)25 );

如果被查询元素存在,则返回该元素在数组中的下标位置,否则返回 -1。

C++/CLI 托管C++的数组介绍【4】

标签:c#   c++   cli   c++cli   

原文地址:http://blog.csdn.net/aoshilang2249/article/details/42317463

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!