2020-03-01 20:57
⁄ 工业·编程
⁄ 共 1500字
通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。
内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是尽量避免了内存碎片,使得内存分配效率得到提升。
pool...
boost库, 内存池阅读全文
2019-12-23 18:10
⁄ 工业·编程
⁄ 共 16916字
最近在学习boost库里的一些常用的库,目前已经看到了boost库的bind适配器这块,个人感觉bind这玩意太好用了,整体来讲bind要比STL里的bind1st和bind2nd要好用很多,下面就从一些基本的用法来说起吧。
bind组件在boost中包含了很多的重载函数,其中这些函数主要是以参数的个数以及被绑定的对象类型来划分,而编译器会根据具体的参数类型以及参数个数来自动地调用相关的形式,在bind中,接收的一个参数必定是一个可调用的对象,这...
boost库阅读全文
2019-12-22 18:05
⁄ 工业·编程
⁄ 共 6597字
在上篇博文中,我们系统地学习了Boost库中智能指针的学习,在处理单个对象时,采用智能指针是一个很不错的选择,但是当需要管理的对象不止一个时,这时候智能指针就有点无能为力了,今天我们就来看看Boost库中pool库的一些东西,Boost.pool库是基于简单分隔存储思想实现的一个快速、紧凑的内存池库,不仅能够管理大量的对象,而且还可以作为stl的内存分配器,在需要大量地分配和释放小对象时,很有效率,且完全不用考虑delete,...
boost库, 内存管理阅读全文
2019-12-21 17:37
⁄ 工业·编程
⁄ 共 11671字
说起内存管理,大多数人第一反应就是new,delete等操作,这一类操作所针对的对象就是堆对象,在使用这一类操作时,一个很突出的问题就是内存泄露,这也是每个C++程序猿的挥之不去的噩梦,曾几何时因为一个不起眼的指针释放问题,而导致了服务器因内存写满而宕机,而如今这类问题,对于C++程序开发者而言已经不再是问题了,为了解决这个问题,C++程序员采用了RAII机制(资源获取即初始化),具体思想就是:在对象初始化时分配资...
boost库, 内存管理阅读全文
2019-12-20 17:28
⁄ 工业·编程
⁄ 共 710字
boost主要是通过六种智能指针来管理内存的:scoped_ptr scoped_array shared_ptr shared_array weak_ptr intrusive_ptr。他们都是轻量级的对象,速度与原始指针相差无几,对于所指的类型T也仅有一个很小且很合理的要求:类型T的析构函数不能抛出异常。
scoped_ptr:仅仅提供了*和->操作,且赋值操作符和拷贝构造函数被定义为私有的,有效的防止了指针所有权的转让。 ==和!=操作符被私有化,拒绝比较操作。
scoped_array:包装...
boost库, 内存管理阅读全文
2019-12-19 17:23
⁄ 工业·编程
⁄ 共 3486字
1. RAII机制
为了管理内存等资源,C++程序员通常采用RAII机制(资源获取即初始化,Resource Acquisition Is Initialization),在使用资源的类的构造函数中申请资源,然后使用,最后在析构函数中释放资源。
1)在栈上创建对象(局部对象):RAII机制正常工作,当离开作用域时,对象会自动销毁从而调用析构函数释放资源
2)在堆上创建对象,使用new操作符,那么它的析构函数不会自动调用,只有对应的delete操作符销毁它才能释放...
boost库, 内存管理阅读全文
2019-12-18 17:12
⁄ 工业·编程
⁄ 共 481字
1 简要介绍
Boost的内存管理库,包含两部分内容,分别是smart_ptr库和pool库,其中我们熟知的shared_ptr、unique_ptr、weak_ptr早已在2011年引入C++11标准。
1)smart_ptr库包含scoped_ptr、unique_ptr、shared_ptr、weak_ptr、intrusive_ptr
2)pool库包含pool、object_pool、singleton_pool
smart_ptr库有什么作用?
1)里面包含我们熟知的shared_ptr、unique_ptr、weak_ptr
2)scoped_ptr和unique_ptr功能类似,但是它更精小...
boost库, 内存管理阅读全文
2019-11-19 10:59
⁄ 工业·编程
⁄ 共 1935字
boost库是每一个C++程序员都应该学会使用的库,也是C++开发中少不了的库,这个库被称为C++的准标准库,很多C++的新标准都是从这个库里面扣出来的。在C++沉沦的十年中,是这个库一直给C++注入蓬勃的生机!紧跟boost库的发展可以说就是在跟进C++标准的发展。
一、下载安装
1、官网下载
下载地址:https://www.boost.org/users/download/ 进入下载页面可以看到很多信息:包括boost最新版本、有关boost的说明文档、历史版本等...
boost库阅读全文
2019-09-08 20:54
⁄ 工业·编程
⁄ 共 601字
POCO的优点:
1) 比boost更好的线程库,特别是一个活动的方法的实现,并且还可设置线程的优先级。
2) 比 boost:asio更全面的网络库。但是boost:asio也是一个非常好的网络库。
3) 包含了一些Boost所不包含的功能,像XML,数据库接口等。
4) 跟Boost相比,集成度更高,是更加统一的一个库。
5) Poco的c++代码更清洁,现代和易理解。对不是模板编程专家的人来说,POCO的代码比大多数Boost库容易理解得多
6) 可以在许多...
boost库, POCO阅读全文
2016-03-03 06:27
⁄ 工业·编程
⁄ 共 2226字
文章目录
1。创建型模式:
2。结构型模式
3。行为模式
4。其他模式
设计模式针对面向对象系统中重复出现的设计问题,提出了一个通用的设计方案,并予以系统化的命名和动机解释。
它描述了问题,解决方案,在什么条件下使用该解决方案极其效果。
设计模式有助于软件开发者更好更快地理解面向对象的精髓。设计出高内聚,结构良好,灵活健壮的程序。
分三种类型:1。创建型...
boost库, 设计模式阅读全文