首页 > 解决方案 > 专门研究 std::vector 如何增长

问题描述

C++ 标准建议 std::vector 呈指数增长,以便在重新分配方面具有“摊销恒定成本”。

虽然这种类型的增长适用于大多数场景,但可能有一种情况我发现我需要使用不同的算法来增长向量。

有没有办法自定义 std::vector 如何增长以及在重新分配之前检查什么条件?

标签: c++stdvector

解决方案


这取决于您所说的“自定义std::vector”是什么意思。要求std::vector允许你做你想做的事。但是,您只能在 的实现中执行此操作std::vector,这需要您编写编译器或标准库实现。

在用户代码中,不允许在 中写入任何内容std,或者至少不能std::vector直接修改 的行为。

您仍然可以通过手动管理std::vector来实现所需的行为,以完全按照您的意愿行事。另一种选择是编写您自己的user::vector具有所需行为的类。


推荐阅读