什么是C和x2B的4行+;代码是什么? 第4行:双重&运算符[](int i); 这条线在C++编程原理中意味着什么,我在使用和[](int i)也很混淆的时候感到困惑。
它允许你在向量对象上使用[]参数。 它向您显示它接收一个int作为参数(什么是C和x2B的4行+;代码是什么? 第4行:双重&运算符[](int i); 这条线在C++编程原理中意味着什么,我在使用和[](int i)也很混淆的时候感到困惑。,c++,C++,它允许你在向量对象上使用[]参数。 它向您显示它接收一个int作为参数([i]),并返回一个double,因此下面这样的行是有效的: class vector{ public: vector(int s); double& operator[](int i); int size(); private: double∗ elem; int sz; }; 或 其中vector1是vector类的实例。它定义了运算符[],该运算符返回对向量中第n个元素
[i]
),并返回一个double,因此下面这样的行是有效的:
class vector{
public:
vector(int s);
double& operator[](int i);
int size();
private:
double∗ elem;
int sz;
};
或
其中vector1是
vector
类的实例。它定义了运算符[]
,该运算符返回对向量中第n个元素的双精度值的引用。通过这种方式,您可以读取和写入特定元素。
假设您有以下内容:
vector1[2] = 4; // since the returned value is a reference
通过操作double value=my_vector[3]
可以读取第四个元素的值。通过操作
my_vector[6]=6.7
可以设置第7个元素的值
vector my_vector(1000);
这行在C中的意思是什么++
此行声明了一个操作符[]
(也称为“数组下标操作符”)实现,它通常用于索引容器类型(例如std::vector
,std::map
和其他)。想象一下公共序列[0]
访问对序列第一个元素的引用
何处使用&
<>在C++中,<代码>和<代码>字符附加到一个类型意味着“一个类型,表示对类型<代码> Foo的引用”。例如,int&
是对int
的引用,double&
是对double的引用
现在,为什么要从操作符[]
返回引用?答案是:因为你可能想写这样的代码
double& operator[](int i);
…为此,您需要运算符[]
实现来返回左值。碰巧引用是左值!为什么你需要左值?一个过于简单的答案是“因为赋值的左边必须是左值”。我发现学习左值和右值很有帮助
和[](int i)也相当混乱
您对此的分析有点不正确。以这种方式看待声明:
double&
操作员[]
(inti)
运算符[]
的实现应将整数值(int
,无符号
,大小
等)作为参数(免责声明:不确定,找不到“you-shall”引用)。这就是为什么参数列表是(int)
进一步阅读:转到并查找“数组下标运算符”。关于特定语言的编程问题在这里不是主题,但在stackoveflow主题上。
double& operator[](int i);
sequence[0] = 42;