C++如何实现二维查找表?

bruce421116 2014-12-23 05:05:14

如图所示的表,要求输入行属性(EAST/WEST/SOUTH/NORTH)和列属性(注意是连续序号中去掉了一列)输出表值。不要有冗余,求教大神。
...全文
630 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bruce421116 2014-12-24
  • 打赏
  • 举报
回复
没有好点的办法吗?我要实例化9个如图所示的表,每个表都去掉标号不同的列。用二维数组的话,访问和初始化表内容时,标号来回转换很繁琐。
赵4老师 2014-12-24
  • 打赏
  • 举报
回复
引用 5 楼 bruce421116 的回复:
[quote=引用 3 楼 fly_dragon_fly 的回复:] 那就用map<string,int> , 键值 就用 EAST_1,EAST_2这样就可以了
那么这只确定了表中一个位置,那么表值咋读?[/quote]
map<string,int> m;
m[string("EAST_1")]=0;
m[string("EAST_2")]=0;
m[string("EAST_3")]=2;
string r="EAST",c="3",k;
k=r+"_"+c;
int v=m[k];//此处v的值就是m[string("EAST_3")]的值,即2
幻夢之葉 2014-12-24
  • 打赏
  • 举报
回复
引用 6 楼 bruce421116 的回复:
[quote=引用 4 楼 jianwen0529 的回复:] 9个表除了某列去掉都是相同的吗? 如果是: 假设:4 X 3 声明三个数组存储三列 int col1[4], col[4]... 初始化3个表: 第一个表去掉第一列: int *table[2] = { row2, row3 } ,,, ,,,
总而言之,要方便输入二元组(行属性(W/E/S/N)、列属性(可以是随意的值)),可以方便进行初始化(就是填表值)、读表值.就是个二元组到值的映射。[/quote] 方法我说了,得你自己判断是否可行!!
bruce421116 2014-12-24
  • 打赏
  • 举报
回复
引用 4 楼 jianwen0529 的回复:
9个表除了某列去掉都是相同的吗? 如果是: 假设:4 X 3 声明三个数组存储三列 int col1[4], col[4]... 初始化3个表: 第一个表去掉第一列: int *table[2] = { row2, row3 } ,,, ,,,
总而言之,要方便输入二元组(行属性(W/E/S/N)、列属性(可以是随意的值)),可以方便进行初始化(就是填表值)、读表值.就是个二元组到值的映射。
bruce421116 2014-12-24
  • 打赏
  • 举报
回复
引用 3 楼 fly_dragon_fly 的回复:
那就用map<string,int> , 键值 就用 EAST_1,EAST_2这样就可以了
那么这只确定了表中一个位置,那么表值咋读?
幻夢之葉 2014-12-24
  • 打赏
  • 举报
回复
9个表除了某列去掉都是相同的吗? 如果是: 假设:4 X 3 声明三个数组存储三列 int col1[4], col[4]... 初始化3个表: 第一个表去掉第一列: int *table[2] = { row2, row3 } ,,, ,,,
fly_dragon_fly 2014-12-24
  • 打赏
  • 举报
回复
那就用map<string,int> , 键值 就用 EAST_1,EAST_2这样就可以了
fly_dragon_fly 2014-12-23
  • 打赏
  • 举报
回复
二维数组不行吗?

64,654

社区成员

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

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