函数应该按 (row,col) 或 (col,row) 顺序接受/返回值吗?
Should a function accept/return values in (row,col) or (col,row) order?
假设我有一个函数,它接受一行和一列作为参数,或者返回一行和一列的元组作为其返回值。我知道这实际上没有区别,但是是否有关于是将行放在第一位还是将列放在第一位的约定?从数学角度来看,如果我将这对视为表中的坐标,我会直观地将列放在第一位,就像在笛卡尔点 (x,y( 中一样。但是,如果我将其视为一个完整的矩阵,我会将行放在第一位,就像矩阵的 MxN 大小一样。
如果不同的语言有不同的约定,我会特别对c ++,c#和python感兴趣。
通过"约定",我的意思是最好是该语言的标准库以某种方式做到这一点,如果不是这样,那么第二选择只有在它是如此通用以至于该语言的所有主要第三方库都会这样做的情况下,最好解释为什么。
你不应该考虑什么是"水平",什么是"垂直"。您应该考虑广泛使用哪种约定,以免给使用您的代码的开发人员带来很多惊喜。命名参数也是如此:对坐标使用(x, y, z)
,对矩阵中的索引使用(i, j)
,对表的单元格使用(row, column)
(按此顺序(。
我同意@ParalysisByAnalysis的观点,有时这取决于,但经验法则是遵循主题的惯例。
约定是像 (x, y( 这样的地址(列、行(。
列是指值的类型,行表示列的值。
列是一个键,使用 Row 即可获得值。
但是使用(行,列(也可以。
这取决于你在做什么。
在 SQL/Linq 中,您始终引用列来获取行。
相关文章:
- 如何对存储为"Compressed Sparse Row"的矩阵进行稀疏矩阵索引?
- 如何在二维向量c++中迭代col
- OpenCV Rect x 和 y 表示 (column,row) 或 (row,column)
- 为什么我的 N-Queens 程序在填充=3、行=4 和 col=7/8 时挂起?
- 如何在qt中修复"No query Unable to fetch row"
- 函数应该按 (row,col) 或 (col,row) 顺序接受/返回值吗?
- i(row) 和 j(col) 是什么意思?
- Qt应用程序中的"No query Unable to fetch row"
- OpenCV Mat::row assignment
- 在我提供的此示例中,如何将2维std ::向量的逻辑更改为具有向量[row] [col] [col] [col] [co
- QVBoxLayout row size
- 如何检查窗口中 Row 的长度或宽度是否大于其父窗口C++的宽度
- 固定尺寸的按钮在Gridlayout中铺设,并有预定义的行/col
- 左col结果分配给相同的矩阵会导致分割故障
- | 9 |错误:非静态数据成员'matrix :: row'| 9 |错误:数组绑定不是在']']'令牌|之前的整数常数
- 如何在C 特征稀疏矩阵中访问特定(行,Col)索引
- 无法解析标识符:"COL"
- ld:对于架构x86_64 row :: AddColumn找不到的符号
- C 读取魔术方形检查器的Console Row中的输入
- at()和row()的区别.col()