加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

这个例子在Bjarne Stroustrup的C编程语言中是如何工作的?

发布时间:2020-12-16 10:02:23 所属栏目:百科 来源:网络整理
导读:我正在阅读 The C++ Programming Language,4th Edition( Bjarne Stroustrup)约 references. 他有以下代码示例: void f (const vectordouble v){ double d1 = v[1]; v[2] = 7; v.push_back(d1);} 我的问题是:由于v作为const传递,我们如何在函数中的第二和第
我正在阅读 The C++ Programming Language,4th Edition( Bjarne Stroustrup)约 references.

他有以下代码示例:

void f (const vector<double>& v){
    double d1 = v[1];
    v[2] = 7;

    v.push_back(d1);
}

我的问题是:由于v作为const传递,我们如何在函数中的第二和第三语句中更改v?

我尝试编译代码,它不起作用:

error: assignment of read-only location

那我在这里错过了什么?我怀疑是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
}

所以它可能是为下一次打印而修复的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读