Moh*_*mel 3 c++ const reference pass-by-reference
我正在阅读C++编程语言,第4版(由Bjarne Stroustrup撰写)关于参考文献.
他有以下代码示例:
void f (const vector<double>& v){
double d1 = v[1];
v[2] = 7;
v.push_back(d1);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:因为v作为const传递我们如何v在函数中改变第二和第三语句?
我尝试编译代码,它不起作用:
错误:分配只读位置
那我在这里错过了什么?我怀疑是Bjarne犯了一个错误:D
谢谢
更新版本具有以下内容:
void f(vector<double>& v)
{
double d1 = v[1]; // copy the value of the double referred to by v.operator[](1) into d1
v[2] = 7; // place 7 in the double referred to by the result of v.operator[](2)
v.push_back(d1); // give push_back() a reference to d1 to wor k with
}
Run Code Online (Sandbox Code Playgroud)
所以它可能是为下一次打印而修复的.