2

我在函数的参数中有一个变量,定义如下:

QVector< QVector<qreal> > *var;

在代码的某个点我想这样做:

*var[i][j] = some_value.

但是,这不会编译,因为

错误:在 '*(var + ((long unsigned int)(((long unsigned int)row) * 8ul)))->QVector::operator[] with T = QVector'中不匹配 'operator*'</ p>

如何正确引用该值以便对其进行修改?(想法是在函数中传递的参数确实被修改了。)

4

1 回答 1

4

您需要放入*var括号:

(*var)[i][j] = some_value;

虽然你为什么使用指向 a 的指针QVector?由于QVector是 Qt 通用容器系列的一部分,它使用隐式共享。这意味着如果您改为按值传递,则只会执行浅拷贝,也就是说,您实际上只会传递数据结构的薄簿记部分 - 指向更大块的指针存在于其他地方的数据。

于 2011-11-18T12:13:56.917 回答