随笔分类 - STL
摘要:前言 任何一种设计方式的引入都会带来额外的开支,是否使用,取决于能带来多大的好处和能带来多大的坏处,好处与坏处包括程序的性能、代码的可读性、代码的可维护性、程序的开发效率等。 线程池适用场合:任务比较多,需要拉起大量线程来处理;任务的处理时间相对比较短,按照线程的周期T1(创建阶段)、T2(执行...
阅读全文
摘要:说明 操作系统维护malloc和free的基本原理是通过一个链表来记录的,每次malloc和free都有不小的开销,随着系统内存碎片化的加剧而开销增加,程序中可以通过申请一块大内存并自行分配的方式减少malloc和free操作,提供程序效率。提供一种简单内存池的方案供大家品鉴。 设计思路 1.已知...
阅读全文
摘要:简介 weak_ptr是shared_ptr的观察者,它不会干扰shared_ptr所共享对象的所有权,当一个weak_ptr所观察的shared_ptr要释放它的资源时,它会把相关的weak_ptr的指针设置为空,防止weak_ptr持有悬空的指针。为什么需要weak_ptr,很多情况下需要旁观...
阅读全文
摘要:前面已经学习过auto_ptr,这里补充另外一种智能指针,比auto_ptr要更强力更通用的shared_ptr。 shared_ptr 简介及使用选择 几乎所有的程序都需要某种形式的引用计数智能指针,这种指针让我们不再需要为两个对象或更多对象共享的对象的生命周期而编写复杂的逻辑(写起来有点绕口)...
阅读全文
摘要:技术不只是我的工作,也是我的生活,以后的博客中会穿插一些个人的喜悦、愤怒或者感悟,希望大家能够接受。 我所有的一切,比我技术更好的怕是我的脸皮了,昨天收到京东面试没有通过的消息,喊了几句“我好悲伤啊”就又能够继续我的生活了。呵呵,我不喜欢批判,但总是能看到自己的不足,好吧,这是一个痛并快乐的过程,...
阅读全文
摘要:排序算法是STL算法中相当常用的一个类别,包括部分排序和全部排序算法,依据效率和应用场景进行选择。 明细: sort 函数原型: template void sort (RandomAccessIterator first, RandomAccessIterator last); templ...
阅读全文
摘要:第一章:前言 数量不多,用到的时候会很爽。 第二章:明细 STL算法中的又一个分类:分割;将已有元素按照既定规则分割成两部分。 is_partitioned 函数原型: template bool is_partitioned (InputIterator first, InputIterat...
阅读全文
摘要:第一章:前言 学习笔记,记录学习STL算法的一些个人所得,在以后想用的时候可以快速拾起。 第二章:明细 copy 函数原型: template OutputIterator copy (InputIterator first, InputIterator last, OutputIterat...
阅读全文
摘要:第一章:引子 STL包含的算法头文件有三个:,其中最大最常用的是,今天学习的是包含的算法中的第一部分:非修改顺序操作算法。 接下来学习的算法基于C++11标准,较老的IDE会支持不全面或者部分算法不支持。 第二章:原型解析 如分类名称体现的信息,本节的所有函数都不会修改序列,并且原理上都是顺序遍...
阅读全文
摘要:第一节:vector简介 vector是一种典型的类模板,使用的时候必须进行实例化。 vector的数据存储在数组上,支持随机访问迭代器,支持下标操作[]和at操作,支持手动扩容和自动容量增长。 vector是STL中的最常用容器,并支持STL的通用算法。第二节:vector的迭代器介绍 vecto...
阅读全文