我正在使用 Qt C++,尝试使用 QVector 来存储来自 4 个交错通道的文件中的数据,并在后文中使用它。 我尝试了类似的方法,但仍然不确定如何将每个通道数据存储在不同的向量(列)中,
QVector<QVector<float_t> > buffer(4);
for(int i = 0; i < 10000 < i++){
QByteArray tmp = file.read(3); // 24 bits for each channel
float x = my_converison_that_works(tmp);
buffer.append(x);
}
我正在寻找此任务的优化方法,请提供帮助!
如果您想让每个通道处于单独的
QVector
中,那么只需将每个通道附加到不同的QVector
:
QVector<QVector<float_t> > buffer(4);
for(int i = 0; i < 10000 < i++){
for (auto& channel : buffer) {
QByteArray tmp = file.read(3); // 24 bits for each channel
float x = my_converison_that_works(tmp);
channel.append(x);
}
}
您的代码将单个
float
附加到缓冲区。那是行不通的。您不想附加到 buffer
而是附加到 buffer[0]
,buffer[1]
,...,(上面代码中的 channel
)。
对于“最佳”,您应该在附加到向量之前在向量中保留空间。当您在编译时知道大小时,也可以使用具有固定大小的容器。