当前位置: 首页 > wzjs >正文

.net手机网站源码表白网站在线制作app

.net手机网站源码,表白网站在线制作app,广西建设行政主管部门官方网站,网站建设模板案例响应式文章目录 一、引言二、std::pmr::polymorphic_allocator 的特性1. 多态分配行为2. 默认模板参数3. 附加成员函数 三、使用场景1. 动态内存分配策略2. 容器与分配器的解耦3. 性能优化 四、示例代码五、总结 一、引言 C20 引入了 std::pmr::polymorphic_allocator,这…

文章目录

    • 一、引言
    • 二、`std::pmr::polymorphic_allocator` 的特性
      • 1. 多态分配行为
      • 2. 默认模板参数
      • 3. 附加成员函数
    • 三、使用场景
      • 1. 动态内存分配策略
      • 2. 容器与分配器的解耦
      • 3. 性能优化
    • 四、示例代码
    • 五、总结

一、引言

C++20 引入了 std::pmr::polymorphic_allocator,这是一个功能强大的内存分配器,它允许在运行时动态选择内存分配策略。与传统的静态分配器(如 std::allocator)不同,std::pmr::polymorphic_allocator 依赖于 std::pmr::memory_resource,通过运行时多态性来管理内存分配。这种灵活性使得 std::pmr::polymorphic_allocator 成为管理内存分配的有力工具,尤其是在需要动态调整内存分配策略的场景中。

二、std::pmr::polymorphic_allocator 的特性

1. 多态分配行为

std::pmr::polymorphic_allocator 的核心特性是其多态分配行为。它根据构造时使用的 std::pmr::memory_resource 表现出不同的分配行为。例如,可以使用 std::pmr::new_delete_resource 来使用全局的 newdelete,或者使用 std::pmr::monotonic_buffer_resource 来实现一个非线程安全的、快速的内存分配器。

2. 默认模板参数

从 C++20 开始,std::pmr::polymorphic_allocator 的默认模板参数从 void 改为 std::byte。这一改变使得 polymorphic_allocator 更加通用,能够更好地与其他标准库组件(如 std::pmr::vectorstd::pmr::string)协同工作。

3. 附加成员函数

C++20 为 std::pmr::polymorphic_allocator 添加了多个成员函数,以增强其功能:

  • allocate_bytesdeallocate_bytes:用于分配和释放原始对齐内存。
  • allocate_objectdeallocate_object:用于分配和释放适合对象或数组的内存。
  • new_objectdelete_object:用于分配并构造对象,以及销毁并释放对象。

这些函数提供了更细粒度的内存管理能力,使得开发者能够更精确地控制内存分配和释放。

三、使用场景

1. 动态内存分配策略

std::pmr::polymorphic_allocator 的多态特性使其成为实现动态内存分配策略的理想选择。例如,在一个需要根据运行时条件选择内存分配器的应用中,可以使用 polymorphic_allocator 来动态切换不同的 memory_resource

2. 容器与分配器的解耦

std::pmr::polymorphic_allocator 允许容器在运行时动态选择内存分配器,而无需在编译时固定分配器类型。这使得容器更加灵活,能够适应不同的内存管理需求。

3. 性能优化

通过使用高效的 memory_resource 实现(如 std::pmr::monotonic_buffer_resource),std::pmr::polymorphic_allocator 可以显著提高内存分配的性能。这对于需要频繁分配和释放内存的应用尤其重要。

四、示例代码

以下是一个使用 std::pmr::polymorphic_allocator 的示例,展示了如何结合 std::pmr::monotonic_buffer_resource 来管理内存:

#include <iostream>
#include <memory_resource>
#include <vector>void TestPmrVec() {char buffer[1000000 * 4] = {0};std::pmr::monotonic_buffer_resource mbr{std::data(buffer), std::size(buffer)};std::pmr::polymorphic_allocator<int> pa{&mbr};std::pmr::vector<int> vec{pa};for (int i = 0; i < 1000000; i++) {vec.push_back(i);}std::cout << "End" << std::endl;
}int main() {TestPmrVec();return 0;
}

在这个示例中,std::pmr::monotonic_buffer_resource 用于管理一个预分配的内存缓冲区。std::pmr::vector 使用这个缓冲区来分配内存,从而避免了频繁的内存分配和释放操作。

五、总结

std::pmr::polymorphic_allocator 是 C++20 中一个强大的工具,它通过运行时多态性提供了灵活的内存分配策略。其默认模板参数的改变和附加成员函数的引入,进一步增强了其功能和通用性。通过合理使用 std::pmr::polymorphic_allocator,开发者可以在运行时动态调整内存分配策略,优化性能,并实现容器与分配器的解耦。


文章转载自:

http://vZ3TvEMm.ngqdp.cn
http://tA2mw7LN.ngqdp.cn
http://9wqjHcg7.ngqdp.cn
http://xhbnskZy.ngqdp.cn
http://bCq5EtcQ.ngqdp.cn
http://yGP3O1GZ.ngqdp.cn
http://aUAhLasE.ngqdp.cn
http://DVvF3Roj.ngqdp.cn
http://IkuYuEWX.ngqdp.cn
http://x3XNLqhJ.ngqdp.cn
http://emo7drs8.ngqdp.cn
http://ZYYeodVb.ngqdp.cn
http://fviFo4qG.ngqdp.cn
http://i7ffHMYA.ngqdp.cn
http://3yMrCw8f.ngqdp.cn
http://4ovf79vS.ngqdp.cn
http://3r3Kn9Bv.ngqdp.cn
http://tr8Um9j3.ngqdp.cn
http://LfVioRj4.ngqdp.cn
http://yFsTywK4.ngqdp.cn
http://e2nXxLDc.ngqdp.cn
http://eFp2xLGY.ngqdp.cn
http://MDcUSBbn.ngqdp.cn
http://SAOj14qS.ngqdp.cn
http://ylaYKXyd.ngqdp.cn
http://86WJlpOR.ngqdp.cn
http://836dHDU5.ngqdp.cn
http://5OYwBIqI.ngqdp.cn
http://IMiHZ0q4.ngqdp.cn
http://1IIuqGmz.ngqdp.cn
http://www.dtcms.com/wzjs/741342.html

相关文章:

  • php网站开发实训报告书一个网站建设的课程设计书
  • 专业的基础微网站开发wordpress插件音乐
  • 做响应式网站图片需要做几版域名备案和网站备案
  • 农化网站建设敦化建设局网站
  • 做网站如何调字体格式枫树seo
  • 网站seo外包公司有哪些大学专业分类目录
  • 做外单网站有哪些公司如何搭建平台
  • 免费app制作网站建筑网课推荐
  • 站长工具seo综合网站怎么做伪静态页面
  • 网站开发课程有哪些电子商务有哪些工作岗位
  • 沙坪坝网站建设公司选哪家好电子商务网站建设答案
  • 网站备案 广东网站建设费属于哪个税种
  • 开源网站开发文档下载装修公司前十强排名榜
  • 网站外链分析工具网站跳出率怎么算
  • 商城网站建设哪家便宜游戏建模培训
  • 新站整站优化网站会员系统功能
  • 站嗨免费建站河北建筑培训网官网
  • 网站建设一般用什么语言好聊城高唐网站建设公司
  • 自助式网站建设 济南织梦模板国外网站
  • 淮安网站建设推广wordpress支付看文章
  • 西峡做网站企业网站用什么开发好-商业推广
  • 米思米网站订单取消怎么做wordpress站点网站地图
  • 模板式网站网络营销方式有哪几种
  • 对网站建设展望程序员培训机构排名
  • 网站建设与运营的预算方案佛山网站商城建设
  • 一级做爰片a视频网站4如何制作自己的微信小程序
  • 湖南省住建厅官网信息公开seo代做
  • 网站配色与布局wordpress畅言
  • 济南网站设计公司排名wordpress 无法上传
  • 代做施组 方案的网站南宁app开发