QList<float>(data)是相当于拷贝一份data还是使用data的指针
时间: 2023-12-21 08:06:46 浏览: 68
custom-list-model.zip_List<Custom> list_list qt_qt list_qt lis
`QList<float>(data)`会创建一个新的`QList`对象,其中包含了`data`中的所有元素的拷贝。即,它不是使用`data`的指针,而是拷贝了一份`data`中的元素。
以下是一个示例:
```cpp
QList<float> data = {1.0, 2.0, 3.0};
QList<float> list(data); // 使用data创建一个新的QList对象
data[0] = 0.0; // 修改data中的元素
qDebug() << data; // 输出: QList(0, 2, 3)
qDebug() << list; // 输出: QList(1, 2, 3)
```
在上面的示例中,创建了一个`QList`对象`data`,并将其传入`QList<float>(data)`中创建一个新的`QList`对象`list`。修改`data`中的元素不会影响`list`中的元素,因为`list`中包含的是`data`中元素的拷贝。
需要注意的是,虽然在创建`list`对象时拷贝了`data`中的元素,但是这些元素的拷贝并非在创建后一直存在于内存中。如果你修改了`list`中的元素,不会影响`data`中的元素,因为`list`和`data`是两个独立的`QList`对象。
阅读全文