python和C++创建一个二维数组
目录
python创建二维数组
方法一:利用列表创建二维数组
list = [[0]*3]*3
print (list)
输出结果为:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
但是当我们想改变其中的一个值时,由于浅拷贝,list里面的三个列表的内存指向同一个,所以三个列表的对应位置会随之相应改变,例如:
list[1][1] = 1
print(list)
输出结果为:
[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
为了解决这个浅拷贝问题,我们可以用生成器:
list_1 = [[0 for i in range(3)] for j in range(3)]
print(list_1)
list_1[1][1] = 1
print(list_1)
结果为:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[[0, 0, 0], [0, 1, 0], [0, 0, 0]]
方法二:利用numpy数组
import numpy as np
nd = np.array([[1, 2, 3], [4, 5, 6]])
print(nd)
//创建连续数组
x1 = np.arange(15).reshape((5, 3))
print(x1)
//创建一个 3x4 的数组且所有值全为 0
x2 = np.zeros((3, 4), dtype=int)
print(x2)
//创建一个 3x4 的数组且所有元素值全为 1
x3 = np.ones((3, 4), dtype=int)
print(x3)
//创建一个 3x4 的数组,然后将所有元素的值填充为 2
x4 = np.full((3, 4), 2, dtype=int)
print(x4)
//创建 2x2 数组且所有值是随机填充
x5 = np.random.random((2, 2))
print(x5)
C++创建二维数组
方法1.创建静态二维数组
int a1[2][3] = {1,2,3,4,5,6};
方法2.创建动态二维数组
//申请空间
int** a2 = new int*[rows];
for(int i=0;i<rows;i++)
a2[i] = new int[columns];
//释放空间
for(int i=0;i<rows;i++)
delete []a2[i];
delete []a2;
方法3.使用Vector容器创建二维数组
vector<vector<int> > a3(rows,vector<int>(columns));
for(int i=0;i<rows;i++){//初始化
for(int j=0;j<columns;j++){
a3[i][j] = a1[i][j];
}
}
C++部分原文链接:link
版权声明:本文为wadaxiwasimida原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。