|
|
1
4
然而,对我来说,这似乎是一个没有问题的理由去经历所有的麻烦。 |
|
|
2
4
如果你有一个指向矩阵的指针,例如作为一个你不能引用的函数参数(传统代码,例如),你仍然可以引用它(伪代码):
|
|
|
3
2
你基本上只限于
或者,将指针设为私有并设为访问器(注意:下面的示例假设一个entrytypes矩阵):
或者,如果无法更改类顶点,只需定义一个内联函数来为您执行此操作:
最后,不要忘记你没有
有
使用运算符重载。STL集合实现一个at()成员函数,该函数被选中,而不是未选中的运算符[]。如果您不介意边界检查的开销,或者您只是想成为非标准的,那么可以实现at(),然后调用
|
|
|
4
1
没有C++句法糖会减轻你所描述的痛苦:
在这种情况下,我要么让图形返回引用而不是指针,要么让矩阵定义一个调用operator()的函数:
那么,对于顶点示例,语法就不那么难看了:
|
|
5
1
我将添加一个函数,它返回一个像rlbond建议的引用。为了快速解决问题,或者如果您无法控制其来源,我将使用以下方法:
这实际上是等价的,因为下面的假设
见 this 关于comp.lang.c++关于同一个问题的长时间讨论,有很好的答案。 |
|
|
6
0
这是不更改代码的最佳方法:
您也可以将some2dtable作为对矩阵的引用,而不是指向矩阵的指针。然后,您将得到和第一个代码截图一样的简化语法。
或者,您可以让some2dtable保留一个指向引用的指针,并简单地存储一个引用变量,然后在代码块的上下文中使用它。 |
|
|
7
0
我将更改获取“samplevertex.some2dtable”的方式,以便它返回引用。 或者自己创建引用:
|
|
|
8
0
我不知道这是否值得麻烦,但你可以这样做:
提供原件
然后在顶点类中提供MatrixAccessor:
然后你可以写:
编辑
我补充说
这个解的一个优点是,通过添加两个非-
当使用到矩阵对象的公共指针时,这是不可能的。 |
|
|
9
0
可以通过调用成员函数来实现matrix::operator(int,int),并在处理指针时直接使用该函数。
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Max · 用两列中的特定值对识别R中的数据帧行 1 年前 |
|
RobertF · 如何将函数应用于矩阵的每个元素? 1 年前 |
|
|
Landers · 将矩阵转换为包含所有值的列表 1 年前 |
|
|
P_B · 如何从矩阵中减去均值向量 1 年前 |
|
|
Rotacional · 获取矩阵中的方向元素 1 年前 |
|
ImRobb · 为什么int**m不等于int m[][]?[关闭] 1 年前 |