c++ - 专门研究 std::vector 如何增长
问题描述
C++ 标准建议 std::vector 呈指数增长,以便在重新分配方面具有“摊销恒定成本”。
虽然这种类型的增长适用于大多数场景,但可能有一种情况我发现我需要使用不同的算法来增长向量。
有没有办法自定义 std::vector 如何增长以及在重新分配之前检查什么条件?
解决方案
这取决于您所说的“自定义std::vector
”是什么意思。要求std::vector
允许你做你想做的事。但是,您只能在 的实现中执行此操作std::vector
,这需要您编写编译器或标准库实现。
在用户代码中,不允许在 中写入任何内容std
,或者至少不能std::vector
直接修改 的行为。
您仍然可以通过手动管理std::vector
来实现所需的行为,以完全按照您的意愿行事。另一种选择是编写您自己的user::vector
具有所需行为的类。
推荐阅读
- android - Android Studio: Adding new group/child to ExpandableListView messes up with the previous one
- c# - Binded string to a textbox only being updated by 1 class and no others (WPF)
- java - 返回 ResponseEntity 和 Http 错误时 RestTemplate.postForObject 返回 Null
- python - Pandas apply based value based on value in another column
- ruby - .each loop not executing
- firebase - firebase cloud functions http request to external api
- lambda - Terraform cloudwatch retention logic
- .htaccess - ErrorDocument 404 parent directory
- json - How to base an inner NgFor on the outter NgFor in Angular
- vue.js - 仅当组件已在 Vue.js 中导入时才加载样式