如果我通过引用函数传递一个向量:
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;那个向量。 为什么参考它的工作原理和指针不是吗?它只是设计?
答案 0 :(得分:1)
因为编译器会自动取消引用引用。
这是由C ++引入的,用于简化C&C的指针。
是的,这是一个设计选择。