如何与 QVector 配合使用<QVector<float_t>>。优化的方式是什么? [已关闭]

问题描述 投票:0回答:1

我正在使用 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);
}  

我正在寻找此任务的优化方法,请提供帮助!

c++ arrays dataframe qt5 qvector
1个回答
0
投票

如果您想让每个通道处于单独的

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
)。

对于“最佳”,您应该在附加到向量之前在向量中保留空间。当您在编译时知道大小时,也可以使用具有固定大小的容器。

© www.soinside.com 2019 - 2024. All rights reserved.