怎样用vector实现多维数组?

chngok 2003-12-19 01:02:38
怎样用vector实现多维数组?
用内置数组可以实现多维数组,例如:int a[5][6];
利用标准容器如vector怎么实现多维数组啊??
...全文
694 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hifrog 2003-12-19
  • 打赏
  • 举报
回复
有空格是和重载">>"的方法产生冲突。

结贴:
我的问题->点帖子后的“管理”。
hanyixin 2003-12-19
  • 打赏
  • 举报
回复

token的读入是采用贪心法,尽可能的读取多的字符到一个token中,所以没有空格的话,
vector<vector<int>> vvi;会被认为int后面跟了一个>>符号。

chngok 2003-12-19
  • 打赏
  • 举报
回复
非常谢谢大家,怎么给分啊?好像没有给分的按钮
hifrog 2003-12-19
  • 打赏
  • 举报
回复
给你来个三维的:)
以下是一个变长三维数组:

//文件名: array06.cpp
#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
int main()
{
int i,
j,
k,
m, //一维坐标
n, //二维坐标
l; //三维坐标


cout << "input value for m,n,l:";
cin>>m>>n>>l;
vector<vector<vector<int> > > vecInt(m, vector<vector<int> >(n, vector<int>(l)));
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
for(k = 0; k < l; k++)
vecInt[i][j][k] = i+j+k;

for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
for(k = 0; k<l; k++)
cout<<setw(5)<<vecInt[i][j][k]<<":"<<setw(9)<<&vecInt[i][j][k];
cout<<endl;
}
cout<<endl;
}

return 0;
}

运行结果:
input value for m,n,l:2 3 4
0: 00492FE0 1: 00492FE4 2: 00492FE8 3: 00492FEC
1: 00492FA0 2: 00492FA4 3: 00492FA8 4: 00492FAC
2: 00492F60 3: 00492F64 4: 00492F68 5: 00492F6C

1: 00492EC0 2: 00492EC4 3: 00492EC8 4: 00492ECC
2: 00492E80 3: 00492E84 4: 00492E88 5: 00492E8C
3: 00492E40 4: 00492E44 5: 00492E48 6: 00492E4C

Press any key to continue

你可以查看我的文章:
http://www.csdn.net/develop/article/22/22669.shtm
qiaojicheng 2003-12-19
  • 打赏
  • 举报
回复
hanyixin(怡) 所说的对,只是奇怪从语法上讲为什么那里需要一个空格呢?
hanyixin 2003-12-19
  • 打赏
  • 举报
回复
vector<vector<int> >vvi;
这里要有个空格
qiaojicheng 2003-12-19
  • 打赏
  • 举报
回复
这样可以vector <int> a[];
chngok 2003-12-19
  • 打赏
  • 举报
回复
我试了,不行,编译都通不过。
qiaojicheng 2003-12-19
  • 打赏
  • 举报
回复
sorry,好像 不行。
qiaojicheng 2003-12-19
  • 打赏
  • 举报
回复
使用vector嵌套来实现吧。试一下看看,没有用过。

24,857

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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