c++ - 在二维数组中,如何根据文本大小和列数得出单元格位置?
问题描述
所以我不完全确定如何措辞,但我会尽力而为。所以我有一个字符串,比如说“HelloWorld”,然后我把它放到一个有 4 列的二维数组中:
0 1 2 3
_______
H E L L
O W O R
L D
我希望能够根据列数和字符串大小找到“W”所在单元格的订单号。前任。给定字符串大小和列数,我如何得出“W”的位置?换句话说,假设单元格的编号顺序如下所示,“W”位于第 5 位:
0 1 2 3
4 5 6 7
8 9 10 11
但是如何根据列数和字符串大小来计算呢?我正在尝试根据列的索引等在 for 循环中执行此操作。我通过取 的上限来知道行数text size/num of cols
,在本例中为 3。
解决方案
如果我的问题是正确的,那么这些东西的计算就像@v78
评论一样,但是他使用的拓扑与你的不同(交换了 x,y)......
它利用模算术(在整数算术上完成)......
/
是除法
%
是除法后的余数
如果你仍然不知道%
它是做什么的,你可以这样看:
a%b = a - (a/b)*b
所以a/b
被截断为整数,所以如果你再乘以它将b
小于a
除非完全b
除法a
。所以两者的减法会给你余数。您可以将其重写为:
(a/b)*b + a%b = a
回到您的问题,如果cols
列数 col,row
是 2D 数组位置并且i
是线性位置并且n
是大小,那么:
i = row*cols + col // get string index from array position
row = i/cols // get array position from string index
col = i%cols
rows = (n+cols-1)/cols // number of rows from string size
推荐阅读
- apache - 来自不同子域的 Apache VirtualHost 重定向
- php - wordpress wp_remote_post 从另一个 wordpress 站点获取响应
- .net - 在开发 Dynamics CRM 2011 中找不到类型或命名空间名称
- android - 在 React-Native 中添加 React-Native-Admob
- swift - 如何在用户编辑时更新 NSTextField 对象的值?
- html - 在 html 中使用 class 或 id 作为 header 和 section 是否是一种规范
- javascript - 将带有换行符的文本从 Javascript 设置为 HTML
- dictionary - 启用 RFC 的功能模块中键值列表的数据结构?
- spring - 搜索方法中的 ResourceNotFoundException
- python - 图像导数 - Python SciPy 中的 Sobel 过滤器