
int[,] queue = new int[x, y]---x是行个数---y是列个数
两种方式:
一 使用for循环
如 int DestArray[y][x]//目的数组
int SrcArray[y][x]//源数组
for(int i=0i<yi++)
{
for(int j=0j<xj++)
{
DestArray[i][j] = SrcArray[i][j]
}
}
二 使用内存 *** 作函数来提高效率
二维数组初始化,将DestArray全部置为零
int DestArray[y][x]
for(int i=0i<yi++)
{
memset(DestArray[i], 0, sizeof(int)*x)
}
这种方法效率更高。
还有将memset改为 memcpy 复制已有的数组。
int DestArray[y][x]//目的数组
int SrcArray[y][x]//源数组
for(int i=0i<yi++)
{
memcpy(DestArray, SrcArray, sizeof(int)*x)
}
以上两个例子都是考虑了二维数组时动态生成时的情况
因为内存不连续,需要用for循环来对每个块的内存赋值
假如是程序源码中已定义大小且连续的内存,可以不需要for循环直接调用这两个函数,例如:
int DestArray[100][100]
int SrcArray[100][100]
memcpy(DestArray, SrcArray, sizeof(int)*100*100)
memset(DestArray, 0, sizeof(int)*100*100)
你这样写不太好,我建议使用结构体来存储数据,可以一开始初始化一个大一点的结构体数组,在主程序里面用一个while循环(你可以设一个标志为退出),同时在里面用switch表示各个功能项,增加会员信息就是在结构体数组中增加一个成员,修改就是修改指定结构体成员的属性值。JavaScript中,由于数组长度是可变的,因此可以通过直接定义新的成员而将其添加到数组中:var o = [2,3,5]
o[3] = 7
console.log(o)//[2,3,5,7]
除了这种方法,还可以通过使用push()语句来达到相同的目的:
o.push(11)
console.log(o)//[2,3,5,7,11]
o.push(13,17)
console.log(o)//[2,3,5,7,11,13,17]
如果需要在数组开头添加新的成员,可以使用unshift()语句:
o.unshift(2014)
console.log(o)//[2014,2,3,5,7,11,13,17]
o.unshift(2013, 2012)
console.log(o)//[2013,2012,2014, 2,3,5,7,11,13,17]
与push()对应,如果需要从数组末尾删除一个成员,可以使用pop()语句,pop()语句将返回这个被删除的成员,而数组长度将减少1:
var p = o.pop()
console.log(p)//17
console.log(o.length)//9
与unshift()对应,如果需要从数组开头删除一个成员,可以使用shift()语句,shift()语句将返回这个被删除的成员,而数组长度将减少1:
var s = o.shift()
console.log(s)//2013
console.log(o.length)//8
除了shift()语句和pop()语句,还可以通过delete *** 作符来删除数组中的成员。与shift()和pop()不同的是,delete *** 作后数组的length属性将保持不变,也即数组将变得不连续。
JavaScript中还可以通过设定数组的length属性来对数组进行修改:当length值小于数组成员数时,JavaScript将对数组进行截取;当length值大于数组成员数时,JavaScript会将数组变得不连续。如果length值只读,那么在数组中直接定义新成员的 *** 作将会失败:
console.log(o)//[2012,2014, 2,3,5,7,11,13]
o.length = 2
console.log(o)//[2012,2014]
o.length = 4
console.log(o)//[2012,2014,undefined,undefined]
var a = [1,2,3]
Object.defineProperty(a, "length", {writable:false})
a[3] = 4
console.log(a)//[1,2,3]
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)