如何确定双端面中块的大小
How to determine the size of chunks in a deque
本文关键字:何确定 更新时间:2023-10-16
我正在尝试通过链接列表在 cpp 中编写一个 deque 类,但是,我不知道在创建 deque 时如何确定块(缓冲区(的长度。
为块选择一个合适的大小将有助于降低 deque 中随机访问的复杂性。
我是否应该编写一个函数,当推送新元素时,它会动态调整块的大小,但我发现它在时间上会非常复杂,因为可能会移动大量数据。
我应该如何处理这个问题。
查看_DEQUESIZ
的代码(每个块的元素数(:
#define _DEQUESIZ (sizeof (_Ty) <= 1 ? 16
: sizeof (_Ty) <= 2 ? 8
: sizeof (_Ty) <= 4 ? 4
: sizeof (_Ty) <= 8 ? 2 : 1) /* elements per block (a power of 2) */
元素增长得越大,元素的数量就越少。仅对于大小大于 8 字节的元素,随着元素大小的增加,开销将减少预期百分比。
在此处查看原始答案。
相关文章:
- 如何确定我已使用非编码文件到达 EOF?
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何在C++中确定文本文件中的元素是字符还是数字
- Python中的for循环与C++有何不同
- 在clang++预处理器中确定gcc工具链版本
- 不确定要在我的main中放入什么才能使我的代码正常工作
- C++setiosflags函数操纵器-未确定的缩进
- 编译器如何在使用SFINAE的函数和标准函数之间确定两者是否可行
- 如何使用url确定网站协议
- 通过构造函数动态确定类实现
- 遍历并行数组以确定C++中的最大数字
- C++如果必须在编译时确定大小,std::array 有什么意义?
- 使用不变量来确定二分搜索中的边界条件
- 无论如何,我可以确定构造函数是否存在吗?
- compare_exchange C++函数如何确定竞争条件?
- 如何使用 do while 循环确定最高值和最低值
- 如何确定哪个标头调用 c++ 中的另一个标头
- 在C++中释放内存期间,迭代器与指针有何不同
- C++ Chrono 确定一天是否是周末?
- 什么是C++中的不确定行为?它与未定义的行为有何不同