为什么我使用引用我不需要在使用operator []之前使用dector一个向量?

时间:2016-07-05 13:46:06

标签: c++ pointers reference

如果我通过引用函数传递一个向量:

void QuadraticInterpolateArray(vector<double> &b) {
    double step = 12.2;
    for (int j = 0; j < b.size(); j++) {
        b[j] = step;
    }
}

当我需要使用operator []访问其值时,我以后不需要尊重b。相反,如果我通过指针传递矢量:

void QuadraticInterpolateArray(vector<double> *b)

我稍后需要(* b)[j]。

在这两种情况下,我都通过&#34;地址&#34;那个向量。 为什么参考它的工作原理和指针不是吗?它只是设计?

1 个答案:

答案 0 :(得分:1)

因为编译器会自动取消引用引用。

这是由C ++引入的,用于简化C&C的指针。

是的,这是一个设计选择。