gpt4 book ai didi

c++ - 如何为 std::array 中的 std::vectors 保留内存?

转载 作者:行者123 更新时间:2023-11-28 01:22:07 25 4
gpt4 key购买 nike

我有一个 std::array,其固定数量 (numLines = 4) 为 std::vector;每个 std::vector 将包含动态数量的元素,我知道每个 std::vector 的最大大小(numMaxSteps = 32) .

因此:

std::array<std::vector<int>, numLines> mSequences;

由于我正在以更高的速率处理音频,因此我必须永远在此过程中分配内存(因此,它会引入咔嗒声和故障)。

但我不确定如何在初始化时保留每个std::vector的内存。

有办法吗?或者我需要迭代 std::array 的每个项目并执行 .reserve(numMaxSteps)

请注意,我需要将 .size() 保持为 0:只有 .capacity() 需要增长。

最佳答案

如果您不介意在访问 vector 时多写几个字母,您还可以创建一个薄包装器:

struct vect32 {
vect32() : vect(32) {}
vector<int> vect;
};

array<vect32, 10> sequences;

sequences[0].vect.push_back(1);

关于c++ - 如何为 std::array 中的 std::vectors 保留内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55652990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com