C++ 多维数组运算符

2024-03-11

是否可以以某种方式重载多维数组的运算符?

就像是:

class A {
  ...
  int& operator[][] (const int x, const int y);
  ...
}

不,那是不可能的。不过,还有两种选择:

你可以有operator[]返回较小维度的数组(对于 3D 数组,它将返回 2D 数组,对于 2D 数组,它将返回 1D 数组,对于 1D 数组,它将返回单个元素)。然后你可以用你想要的语法将它们“串在一起”。 (arr[x][y][z])

或者,您可以超载operator(),因为这可能需要多个参数。

然后你可以像这样使用它,索引到 3D 数组,例如:arr(x,y,z)

但你不能超载[][] or [][][]作为单个操作员。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 多维数组运算符 的相关文章

  • Windows 10 Mobile (10.0.14393) 地理围栏后台任务 (LocationTrigger)

    自从10 0 14393 周年纪念更新 LocationTrigger似乎不起作用 我有 Windows Phone 8 1 应用程序 也适用于 UWP 应用程序 输出到的便携式库Windows Runtime Component图书馆 w
  • 为什么存在 async 关键字

    浏览 msdn 9 频道视频时 我发现以下未答复的评论 希望有人能解释一下 我不明白 async 关键字的意义 为什么不直接允许 任何时候方法返回任务时都会使用await关键字 就像迭代器一样 可以在任何返回 IEnumerable 的方法
  • 通过增加索引之和来生成排序组合的有效方法

    对于启发式算法 我需要一个接一个地评估特定集合的组合 直到达到停止标准 由于它们很多 目前我正在使用以下内存高效迭代器块生成它们 受到 python 的启发 itertools combinations http docs python o
  • 在 VS2017 下使用 Conan 和 CMake 项目进行依赖管理

    我正在尝试使用 CMake 与 VS2017 集成为 C 设置一个开发环境 以便在 Linux x64 下进行编译 为了更好地管理依赖关系 我选择使用 Conan 但我对这个软件还很陌生 我想知道让 VS2017 识别项目依赖关系的最佳方法
  • 内联函数/方法

    声明 内联函数必须在调用之前定义 这个说法正确吗 EDIT 该问题最初是德语 内联功能穆森 弗 伊赫雷姆 奥夫鲁夫定义 sein 也许它对任何人都有帮助 是的 它是正确的 但只是部分正确 它可能正确地重新构建如下 内联函数必须在每个翻译单位
  • 从 C 结构生成 C# 结构

    我有几十个 C 结构 我需要在 C 中使用它们 典型的 C 结构如下所示 typedef struct UM EVENT ULONG32 Id ULONG32 Orgin ULONG32 OperationType ULONG32 Size
  • mprotect 之后 malloc 导致分段错误

    在使用 mprotect 保护内存区域后第一次调用 malloc 时 我遇到分段错误 这是执行内存分配和保护的代码片段 define PAGESIZE 4096 void paalloc int size Allocates and ali
  • 获取尚未实例化的类的函数句柄

    我对 C 相当陌生 我想做的事情可能看起来很复杂 首先 我想获取一些函数的句柄以便稍后执行它们 我知道我可以通过以下方式实现这一目标 List
  • 带 If 的嵌套 For 循环的时间复杂度

    void f int n for int i 1 i lt n i if i int sqrt n 0 for int k 0 k lt pow i 3 k do something 我的思考过程 执行if语句的次数 sum i 1 to
  • TcpClient 在异步读取期间断开连接

    我有几个关于完成 tcp 连接的问题 客户端使用 Tcp 连接到我的服务器 在接受客户端后listener BeginAcceptTcpClient ConnectionEstabilishedCallback null 我开始阅读netw
  • 为什么 clang 使用 -O0 生成低效的 asm(对于这个简单的浮点和)?

    我正在 llvm clang Apple LLVM 版本 8 0 0 clang 800 0 42 1 上反汇编此代码 int main float a 0 151234 float b 0 2 float c a b printf f c
  • OpenCV 2.4.3 中的阴影去除

    我正在使用 OpenCV 2 4 3 最新版本 使用内置的视频流检测前景GMG http docs opencv org modules gpu doc video html highlight gmg gpu 3a 3aGMG GPU算法
  • C++ 错误 - “成员初始值设定项表达式列表被视为复合表达式”

    我收到一个我不熟悉的 C 编译器错误 可能是一个非常愚蠢的错误 但我不能完全指出它 Error test cpp 27 error member initializer expression list treated as compound
  • 分配器感知容器和propagate_on_container_swap

    The std allocator traits模板定义了一些常量 例如propagate on container copy move assign让其他容器知道它们是否应该在复制或移动操作期间复制第二个容器的分配器 我们还有propag
  • 从 R 到 C 处理列表并访问它

    我想使用从 R 获得的 C 列表 我意识到这个问题与此非常相似 使用 call 在 R 和 C 之间传递数据帧 https stackoverflow com questions 6658168 passing a data frame f
  • C 中带有指针的结构的内存开销[重复]

    这个问题在这里已经有答案了 我意识到当我的结构包含指针时 它们会产生内存开销 这里有一个例子 typedef struct int num1 int num2 myStruct1 typedef struct int p int num2
  • 如何引用解决方案之外的项目?

    我有一个 Visual Studio C 解决方案 其中包含一些项目 其中一个项目需要引用另一个不属于解决方案的项目 一开始我引用了dll
  • Visual Studio 2017 完全支持 C99 吗?

    Visual Studio 的最新版本改进了对 C99 的支持 最新版本VS2017现在支持所有C99吗 如果没有 C99 还缺少哪些功能 No https learn microsoft com en us cpp visual cpp
  • C++、三元运算符、std::cout

    如何使用 C 用三元运算符编写以下条件 int condition1 condition2 condition3 int double result int or double std cout lt lt condition1 resul
  • 带有私有设置器的 EFCore Base 实体模型属性 - 迁移奇怪的行为

    实体模型继承的类内的私有设置器似乎会导致 EFCore 迁移出现奇怪的问题 考虑以下示例 其中有多个类 Bar and Baz 继承自Foo 跑步时Add Migration多次命令 添加 删除private修饰符 生成的模式在多个方面都是

随机推荐

  • 当 iPad 处于纵向方向时缩小 Mobile Safari 视口宽度?-

    我正在开发一个网站 该网站设计为在 iPad 上以横向模式查看时效果最佳 一切都是 1024px 宽 div 容器 然而 我仍然需要缩小视口 这样当用户将 iPad 转为纵向时 用户不必缩小或水平滚动来查看页面上的所有内容 目前我有这个标签
  • 正则表达式匹配任何包含特定字母或更多字母的单词?

    我需要一个正则表达式来匹配任何包含字母的单词 m a h d以任何顺序在一起 所以 Mohamed Hamada and Mahmoud匹配 但是hammer不匹配 我尝试执行以下操作 我是正则表达式的新手 Regex reg new Re
  • 索引和长度必须引用字符串内的位置?

    我想获取前 50 个字母 所以我使用了subString函数来获取它 如您所见 我使用以下代码来获取它 但不幸的是它不起作用并且出现错误消息 索引和长度必须引用字符串中的位置 那么还有其他方法可以修复吗 因为用户是控制数据输入的人 有时他会
  • float 到 long 转换时出错[重复]

    这个问题在这里已经有答案了 我猜这是由于浮点和准确性造成的 但我只是想检查一下以确保没有遗漏任何其他内容 我有一个 1007 62 的浮点数 存储在 info Amount 中 该浮点数乘以 100 并转换为 long 此时我得到的值为 1
  • 集合类型属性的设置器

    集合类型属性是否需要设置器 Type 1 class Company private IList
  • uWSGI、Flask、sqlalchemy 和 postgres:SSL 错误:解密失败或坏记录 mac

    我正在尝试使用 uWSGI Nginx 设置一个应用程序网络服务器 它使用 SQLAlchemy 运行 Flask 应用程序来与 Postgres 数据库进行通信 当我向网络服务器发出请求时 所有其他响应都将是 500 错误 错误是 Tra
  • Java日期更改格式[重复]

    这个问题在这里已经有答案了 我正在尝试更改格式Date对象 我尝试这样做 for Date date dates DateFormat formatter new SimpleDateFormat yyyy MM dd String for
  • 将 Python 枚举编码为 JSON

    我有一本字典 其中一些键是 Enum 实例 enum Enum 的子类 我正在尝试使用自定义 JSON 编码器类将字典编码为 JSON 字符串 如下所示文档 https docs python org 3 library json html
  • 创建卷的 Docker 容器后,本地主机上的权限更改为 1000

    我的容器使用外部卷创建后 权限变为1000 drwxr x 71000 10004096 三月 02 01 13 my domain 每次我需要更改它我的用户 AS docker 由 root 用户安装 我怎样才能避免这种情况 有人可以写点
  • 将 Jython 与 Maven 结合使用

    我有一个 Maven 模块 它依赖于我通过 jython 代码访问的各种其他 Maven 依赖项 我现在已经完成了 我想将项目编译为 jar 或者甚至只是运行它而不编译 但我不知道从哪里开始 有谁知道如何运行一些 py 文件来访问其他包中的
  • MYSQL - 使用 while 循环更新

    declare c int set c 1 while c lt 700 do update users set profile display name concat substring first name 1 1 last name
  • .NET Core 更新迁移正在尝试再次重新创建表

    我首先正在开发 net core 3 项目代码 在此步骤中 我在表中添加了 2 列 然后我通过此代码 CLI 对解决方案进行了迁移添加 dotnet ef startup project MyApi Api migrations add a
  • mysql.service 丢失但显示在列表中 - 安装失败

    我使用的是 Ubuntu 17 04 长话短说 在与 MariaDB 进行了一些斗争之后 我遵循了一些关于如何完全地从我的家庭服务器中删除 MySQL 和 MariaDB 现在我无法重新安装mysql server 当我尝试时出现此错误 F
  • 非 ANSI 文件的 TStringList 行为

    在我的应用程序中 当我想要导入文件时 我使用 TStringList 但是 当有人从Excel导出数据时 文件编码是UCS 2 Little Endian TStringList无法读取数据 有什么方法可以验证这种情况 识别文本编码并向用户
  • Mod_wsgi工作进程分段错误(11)

    我的 django 应用程序有问题 该应用程序由 apache mod wsgi 托管 我在应用程序中添加了一些 matplotlib 代码 apache 工作进程现在崩溃了 我将这个问题简化为以下内容 没有任何 matplotlib 导入
  • 添加模型到集合后自动保存

    我有一个收藏myCollection我向其中添加模型如下 myCollection add title Romeo and Juliette author Shakespear 我现在可以将这个添加的模型保存到服务器吗 骨干Collecti
  • 找不到方法:'Void Google.Apis.Util.Store.FileDataStore..ctor(System.String)'

    我已经被困在这个问题上好几天了 我从 google api 示例中复制了确切的代码以将文件上传到 Google Drive 这是代码 UserCredential credential GoogleWebAuthorizationBroke
  • Spark失败:引起:org.apache.spark.shuffle.FetchFailedException:框架太大:5454002341

    我正在为确定父子项的表生成层次结构 以下是使用的配置 即使在收到有关太大框架的错误后也是如此 火花特性 conf spark yarn executor memoryOverhead 1024mb conf yarn nodemanager
  • 什么是 XPS 文件以及如何使用它

    我有一个简单的 C net Web 应用程序 我正在使用 XPS 文件 我使用了以下代码 private void button1 Click object sender EventArgs e try string xpsFile D C
  • C++ 多维数组运算符

    是否可以以某种方式重载多维数组的运算符 就像是 class A int operator const int x const int y 不 那是不可能的 不过 还有两种选择 你可以有operator 返回较小维度的数组 对于 3D 数组