gpt4 book ai didi

c++ - 缩小 vector

转载 作者:可可西里 更新时间:2023-11-01 18:01:04 25 4
gpt4 key购买 nike

我的地形引擎(使用 DirectX)有问题。

我正在使用 vector 来保存细节 block 的顶点。当 block 详细增加时, vector 也会增加。

但是,当 block 减少其细节时, vector 的大小不会缩小。

那么,我的问题是:有没有办法缩小 vector 的大小?我试过这个:

vertexvector.reserve(16);

最佳答案

如果从 vector 中弹出元素,它不会释放内存(因为这会使容器元素中的迭代器失效)。您可以将 vector 复制到新 vector ,然后将其与原始 vector 交换。这样就不会浪费空间。 Swap 具有恒定的时间复杂度,因为交换不能使指向交换 vector 元素的迭代器无效:因此它必须只交换内部缓冲区指针。

vector<vertex>(a).swap(a);

它被称为“缩小到适合”的成语。顺便说一下,下一个 C++ 版本包含一个用于 std::vector 的“shrink_to_fit()”成员函数。

关于c++ - 缩小 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/586634/

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