怎样声明一个变长的n维数组?

hifrog 2003-11-28 03:21:05
已知声明一个变长的一维数组可以这样:

int a;
cin>>a;
double* db_array=new double[a];

那么数组是二维的怎么办?n维的呢?搞得我用指针用晕了:(
help~~~~~~~~~~~~~~~!
...全文
81 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hifrog 2003-12-13
  • 打赏
  • 举报
回复
呵呵,在faq中找到这个问题的答案了:)
bobi1128 2003-12-08
  • 打赏
  • 举报
回复
用c/c++编程,用指针管理内存非常方便,首地址加上偏移量,偏移量等于数据程度乘以目前计数减一。
csdn5211 2003-12-07
  • 打赏
  • 举报
回复
一维和多维有啥分别,用一个vector就行了,不过好象挺麻烦。多位无非也就是,把一位数组给分成几份了,用迭代器搞一下每份大小不就行了。
一个傻冒 2003-12-07
  • 打赏
  • 举报
回复
safearray
一路奔跑 2003-12-03
  • 打赏
  • 举报
回复
我也问一下,用vector怎么实现多唯的啊?
jeckyz 2003-12-02
  • 打赏
  • 举报
回复
我也赞成用 vector, 而且安全高效果
sycamore 2003-12-02
  • 打赏
  • 举报
回复
函数都封装好了,只要调用就可以了。看msdn吧,这是最好的参考书!大家总的思路都一样,都是一维数组的嵌套。
hifrog 2003-11-28
  • 打赏
  • 举报
回复
用vector可以,但是怎么用vector做为变长的多维数组呢?
vector的用法我不是很明白,还是要请教一下:)
hifrog 2003-11-28
  • 打赏
  • 举报
回复
看了以后还是很晕,如果向sycamore那样程序的可读性就差了很多。不过我试了试,这种方法是可行的。呵呵
还有更好的方法吗?
yuantao 2003-11-28
  • 打赏
  • 举报
回复
可以用vector啊,vector<vector<T>>
这样不就可以了吗,绝对是最灵活的变长数组
echolx 2003-11-28
  • 打赏
  • 举报
回复
楼上的写的不错,就是这个思路,但是写很少有人用动态的分配二维的数组,更别说是三维以上的了。若是个a[50][10][30],分配下来就够系统忙一整子了而且很可能失败,动态分配别忘了加上size的判断。
fierygnu 2003-11-28
  • 打赏
  • 举报
回复
多维只是分配/释放的时候要注意些,使用还是一样的。其实如果出现了多维数组,就应该寻找可能的更好的算法。
sycamore 2003-11-28
  • 打赏
  • 举报
回复
int num1,num2;
cin >> num1 >> num2;

int **p = new int*[num1];
for(int i=0; i<num1; ++i)
p[i] = new int[num2];
hongfeeling 2003-11-28
  • 打赏
  • 举报
回复
看看
fireseed 2003-11-28
  • 打赏
  • 举报
回复
用一维数组的二维索引吧,放弃n维数组!我做开发这么些年,几乎没用过二维以上的数组


double d[0x1000];
d[ i * 400 + j ]

i是行数,400是行宽,j是列数

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧