问题标签 [subscript-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1215 浏览

c# - 如何从 C++ 下标运算符所在的类中访问它?

其中,ClassA 有一个这样的运算符,它返回 ClassB:

如果我想从 ClassA 的构造函数中访问所述运算符,如下所示:

目前,作为一种变通方法,我只使用 [] 运算符调用的名为 GetAtIndex(int index) 的方法,构造函数也是如此。

如果我可以像 C# 一样访问它,那就太好了:

注意:我正在使用 g++

0 投票
5 回答
157 浏览

c++ - C++ 数组作为参数,编辑:现在包括变量范围

好吧,我猜这是一个简单的问题,所以我会接受敲门,但我在谷歌或 SO 上找不到我需要的东西。我想在一个地方创建一个数组,并将其填充到另一个函数中。

我定义了一个函数:

这是我的代码正在执行的操作的近似值,但无论如何,不​​应该遇到任何溢出或越界问题或任何问题。我生成一个数组:

然后我想把它传递给someFunction

当我设置断点并单步执行代码时,在输入 时someFunctionresults设置为与 相同的地址result,并且该值如预期的那样为 -1.000000。但是,当我开始遍历循环时,results[n]似乎没有解析为*(results+n)or *(results+n*sizeof(double)),它似乎只是解析为*(results). 我最终得到的是,我没有填充我的结果数组,而是得到一个值。我究竟做错了什么?

编辑 哦,有趣,我有一个错字:不是void someFunction(double results[]). 它是:

所以也许这正在变成一个范围界定问题。如果我的double result[16]数组在 main.cpp 中someFunction定义,并且在 main.cpp 包含的 Utils.h 文件中定义,那么其中的result变量是否会对 mainsomeFunction中的数组造成严重破坏result

编辑2:

@gf,在尝试使用新项目重现此问题的过程中,原始项目“神奇地”开始工作。

我不知道如何解释它,因为没有任何改变,但我很确定我所看到的 - 我对这个问题的原始描述很清楚,所以我不认为我是在产生幻觉。我感谢您的时间和答案……很抱歉浪费您的时间。如果再次发生,我会再次更新,但与此同时,我想我很清楚。再次感谢。

0 投票
1 回答
218 浏览

c++ - 如何使用 boost 确定给定数组类型的下标运算符的返回类型?

如果我想使用 boost 确定数组 (T) 的下标运算符返回的类型,我需要使用什么类型签名?请注意,我将使用它的数组不包含 typedef 并且是第三方的。

例子。我想确定:

就像是

? 我一直在类型签名中遇到 operator[] 的问题。:|

谢谢!

0 投票
7 回答
10086 浏览

c++ - 在左值和右值情况下重载下标运算符“[ ]”

我在班级Interval中重载了 [] 运算符以返回minutesseconds

但我不确定如何使用 [] 运算符将值分配给分钟秒。

例如:我可以使用这个语句

cout << a[1] << "min and " << a[0] << "sec" << endl;

但我想重载 [] 运算符,这样我什至可以使用

我的代码:

我知道我必须将成员变量声明为私有,但我在这里声明为公有只是为了方便。

0 投票
2 回答
19064 浏览

c++ - 在 C 和 C++ 中通过 index[array] 访问数组

有些面试官出于某种原因喜欢问这个小技巧问题:

据我所知,a[b]被转换为*(a + b),并且由于加法是可交换的,所以它们的顺序并不重要,所以2[a]确实如此*(2 + a),而且效果很好。

这是否保证符合 C 和/或 C++ 的规范?

0 投票
6 回答
442 浏览

c++ - 运算符[]的重载

哪些场景可能需要重载下标运算符?

断言函数与此有什么关系?我看到在大多数下标重载使用断言的情况下,需要对此进行解释。

0 投票
3 回答
1969 浏览

c++ - 重载下标运算符并使用双指针?

我有以下需要使用的变量,并且必须围绕它编写自己的包装器以进行分配。我正在超越分配(因为我将不得不使用我制作的这个包装器)并且想要在我的包装器中重载下标运算符以便将它与双指针数组一起使用。我在代码中的意思是:

是)我有的:

从库的给定标题:

我的课(当然包含在标题中):

当然这不会起作用,因为双指针返回一个指针,这不是我告诉它返回的,但返回 *pixels& 也不会返回它。只是为了满足我的好奇心并帮助我理解为什么这是不可能的,有人可以告诉我如果可以的话,这将如何实现,为什么会这样?请记住,我还不太了解指针(我知道它们如何工作的基础知识,但仅此而已),并希望借此来扩大我的理解。

0 投票
7 回答
914 浏览

c++ - C++ 的 operator[] 可以接受多个参数吗?

是否可以定义一个operator[]需要多个参数的重载?也就是说,我可以定义operator[]如下:

然后像这样使用它?

0 投票
4 回答
2128 浏览

c++ - 为什么 std::queue 没有 operator[]?

std::queue默认情况下使用双端队列实现。std::deque具有下标运算符 ,operator[]并且可能用数组实现。那么为什么没有std::queueoperator[]

我意识到你可以有一个带有列表的队列作为底层容器。( std::queue<int, std::list<int>>.) 但即使这会使下标运算符变慢,这真的是不包括它的好理由吗?这是我能想到的不包括在内的唯一原因。

0 投票
4 回答
267 浏览

c++ - 在 C++ 中重载 Subscript[] 运算符以设置类(量词)的大小。

美好的一天,伙计们。

我有以下结构和类,

我想实例化一个大小的类

IE。NCA[30] 与任何数组一样