为了账号安全,请及时绑定邮箱和手机立即绑定

在c++中,是否可以像Numpy中的ndarray风格一样,实现使用[i, j, ...]

在c++中,是否可以像Numpy中的ndarray风格一样,实现使用[i, j, ...]

犯罪嫌疑人X 2021-11-09 16:20:05
在 numpy 中,可以按如下方式访问数组import numpy as npa = np.arange(3*2).reshape(3, 2)b = a[0, 1]在 C++ 中,是否可以重载运算符 [] 来实现与a[0, 1]? 当然,输入参数的数量可能会有所不同。
查看完整描述

1 回答

?
梦里花落0921

TA贡献1772条经验 获得超5个赞

它不是。见数组下标运算符

为了提供多维数组访问语义,例如实现 3D 数组访问 a[i][j][k] = x;,operator[] 必须返回对 2D 平面的引用,该平面必须有自己的 operator[]它返回对一维行的引用,该行必须有 operator[] 返回对元素的引用。为了避免这种复杂性,一些库选择重载 operator(),以便 3D 访问表达式具有类似 Fortran 的语法 a(i, j, k) = x;

然而,已经提出了最终实现这一点的相关提议


查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 177 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信