Y********f 发帖数: 410 | 1 面试题中经常要用到二维数组,但是又不能简单的用一个new来创建二维数组,我知道
的大概有这三种:
1. 用一维数组代替二维数组 A(i, j) = arr[i * N + j]
2. careercup 150道里面提到new int[M * N + M], 然后把前面M个设定为指向一维数
组的指针。
3. vector tempVect(N); vector> vect(m, tempVect);
但是用起来都很别扭,大家有什么好的方法? |
p*****2 发帖数: 21240 | 2
为什么不能创建二维数组?
【在 Y********f 的大作中提到】 : 面试题中经常要用到二维数组,但是又不能简单的用一个new来创建二维数组,我知道 : 的大概有这三种: : 1. 用一维数组代替二维数组 A(i, j) = arr[i * N + j] : 2. careercup 150道里面提到new int[M * N + M], 然后把前面M个设定为指向一维数 : 组的指针。 : 3. vector tempVect(N); vector> vect(m, tempVect); : 但是用起来都很别扭,大家有什么好的方法?
|
Y********f 发帖数: 410 | 3 new int[i][j]如果i不是const的时候会出错吧。
【在 p*****2 的大作中提到】 : : 为什么不能创建二维数组?
|
p*****2 发帖数: 21240 | 4
你测过吗。 Java应该没问题吧。
【在 Y********f 的大作中提到】 : new int[i][j]如果i不是const的时候会出错吧。
|
b***i 发帖数: 3043 | 5 new and then new in a for loop
int **array_ptr; //two * are needed because it is a pointer to a pointer
array_ptr=new int*[firstnumber]; //creates a new array of pointers to int
objects
for(int i=0; i
array_ptr[i]=new int[secondnumber];
【在 Y********f 的大作中提到】 : 面试题中经常要用到二维数组,但是又不能简单的用一个new来创建二维数组,我知道 : 的大概有这三种: : 1. 用一维数组代替二维数组 A(i, j) = arr[i * N + j] : 2. careercup 150道里面提到new int[M * N + M], 然后把前面M个设定为指向一维数 : 组的指针。 : 3. vector tempVect(N); vector> vect(m, tempVect); : 但是用起来都很别扭,大家有什么好的方法?
|
l*********8 发帖数: 4642 | 6 c++里面不能 new int[n][m]; 只能new int [n][3]; 第二维大小必须是常数。
gcc/g++支持这样的语句:
int n, m;
cin >> n >> m;
int a[n][m];
不过vc不支持。
【在 p*****2 的大作中提到】 : : 你测过吗。 Java应该没问题吧。
|
p*****2 发帖数: 21240 | 7
很恶心呀。
【在 l*********8 的大作中提到】 : c++里面不能 new int[n][m]; 只能new int [n][3]; 第二维大小必须是常数。 : gcc/g++支持这样的语句: : int n, m; : cin >> n >> m; : int a[n][m]; : 不过vc不支持。
|
l*********8 发帖数: 4642 | 8 java的确避免了很多C++恶心的地方。
【在 p*****2 的大作中提到】 : : 很恶心呀。
|
M**A 发帖数: 78 | |
f*******4 发帖数: 64 | 10 boost.MultiArray
【在 Y********f 的大作中提到】 : 面试题中经常要用到二维数组,但是又不能简单的用一个new来创建二维数组,我知道 : 的大概有这三种: : 1. 用一维数组代替二维数组 A(i, j) = arr[i * N + j] : 2. careercup 150道里面提到new int[M * N + M], 然后把前面M个设定为指向一维数 : 组的指针。 : 3. vector tempVect(N); vector> vect(m, tempVect); : 但是用起来都很别扭,大家有什么好的方法?
|
Y********f 发帖数: 410 | 11 我说的第二个就是这种方法
【在 M**A 的大作中提到】 : C/C++ 可以用指针来创建二维数组
|
t*********n 发帖数: 89 | 12 vector> 感觉用起来最方便啊,STL毕竟不容易出bug |
b***m 发帖数: 5987 | 13
同意。
【在 t*********n 的大作中提到】 : vector> 感觉用起来最方便啊,STL毕竟不容易出bug
|