【问题标题】:Changing the value of a member vector variable in a member function在成员函数中更改成员向量变量的值
【发布时间】:2020-04-14 15:03:32
【问题描述】:

A 在我的班级中有一个看起来像这样的函数:

void SomeClass::SomeFunction(int i, int j){

    float var = MemberVector[i][j];
    float temp;
    temp = var * -1;
 ~~~Some Condition~~~{
        MemberVector[i][j] = temp;
    }
}

我想在向量成员变量中获取 [i][j] 处的值,并将其乘以 -1,即如果它是负数则使其为正数,反之亦然。

我认为向量运算符 [] 返回对方括号内指定位置的值的引用,但是当我运行我的代码时,它不会更改成员向量变量中的值。

有没有办法通过成员函数内部的引用来引用成员变量中 [i][j] 处的值并按照我的描述进行更改?

【问题讨论】:

    标签: c++ class vector


    【解决方案1】:

    如果你写类似的东西

    int x = y;
    

    那么xy 的副本。更改x 不会更改y

    为此,您需要一个参考,像这样

    int &x = y;
    x = 42; // now y is also 42
    

    在您的情况下,您甚至不需要参考。你可以直接修改元素,

    MemberVector[i][j] *= -1;
    

    【讨论】:

    • 好的,谢谢 - 这行得通,但我认为错误一定在其他地方 - 我最初的方法似乎也不错,如果稍微不那么整洁
    猜你喜欢
    • 2011-11-15
    • 2013-04-18
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多