STL
文章平均质量分 88
SimonxxSun
这个作者很懒,什么都没留下…
展开
-
C++ STL标准库 其他部分
目录一、一个万用的 Hash Function二、tuple 用例三、type traits3.1 type traits 的应用3.2type traits 的实现四、cout五、moveable5.1 moveable 的实现5.1 moveable 的测试一、一个万用的 Hash Function一般实现哈希函数的三种方式:普通函数 、h...原创 2019-01-15 12:05:25 · 360 阅读 · 0 评论 -
C++ STL标准库与泛型编程(五)红黑树、Set、Map
关联式容器,查找与元素的安插效率都很高,相当于一个小型的数据库(用 key 去寻找数据)。其底层实现是基于两个重要的技术:红黑树、散列表。Red - Black Tree 红黑树一、相关概念rb_tree 是一种高度平衡的搜索二叉树,其元素排列的规则有利于 search 和 insert,并同时保持适度的平衡。 rb_tree 提供遍历操作以及 iterator。元素放入后有...原创 2018-12-27 16:25:10 · 1669 阅读 · 0 评论 -
C++ STL标准库 仿函数和适配器
目录一、仿函数 functors二、函数适配器1.迭代器适配器1.1 reverse_iterator1.2 inserter2.容器适配器3.仿函数适配器3.1 bind2nd3.2 not13.3 新型适配器 bind4.未知适配器4.1 ostream_iterator输出流迭代器4.1 istream_iterator输入流迭代器...原创 2019-01-11 15:52:50 · 634 阅读 · 0 评论 -
C++ STL标准库与泛型编程(三)Vector、array 深度探索
一、Vector 深度探索动态增长数组 ——vector容量增长的本质:每次空间不够时,容器适配器会在另一个内存空间将待用空间多次的两倍扩张(1.2.4.8........),安排好扩张内存后将所有值复制过去。 Vector 对象的大小就是3个指针的大小,12个字节。(32位操作系统下)所有对于 vector 的操作都是基于这三个指针的。eg:除了*与long随操作系统子长...原创 2018-12-25 11:41:34 · 601 阅读 · 0 评论 -
C++ STL标准库与泛型编程(二)分配器、List、Iterator
一、分配器 allocators先谈谈 operator new() 和 malloc()所有C++平台上的分配动作,最后都会调用malloc(),销毁都会用 free(),然后根据在不同的系统(win linux unix)下去调用不同的 API 实现内存的索取。malloc()实际分配的空间内存大小会比要求的大,会加上 cookies (记录了本次申请的模块大小) 等额外开销,...原创 2018-12-20 12:06:55 · 392 阅读 · 0 评论 -
C++ STL标准库与泛型编程(一)概述
目录使用C++标准库一、STL体系结构容器 —结构与分类1.Sequence Containers 序列式容器2.Association Containers 关联式容器 —— 有 key 和 value ,适合做查找3.Unordered Containers —— C++11不定序容器 之前也归于关联式容器容器的测试—限制与效率1.测试 array2...原创 2018-12-19 12:26:12 · 763 阅读 · 0 评论 -
C++ STL标准库与泛型编程(六)哈希表、Unordered 容器
哈希表避免碰撞 —构造哈希函数、再散列函数法、哈希表加链表虽然很好的处理了碰撞的问题,但是当单链表很长时,遍历链表的速度会很慢。 当链表太长时(经验法则:当元素个数比 bucket <vector> 数还要多时),想办法将其打散 — 将 bucket 扩充大约两倍。选择53的倍数附近的素数 53 -> 97 -> 193........。(G2.9适用,...原创 2018-12-28 12:31:04 · 508 阅读 · 0 评论 -
C++ 2.0 新特性 语言特性
只谈新东西C++ 2.0 新特性 包括语言特性和标准库两个层面,后者以 头文件 形式呈现的。标准库的东西全部都放在 名称空间 std 中。目录一、可变参数模板 Variadic template统一的初始化explicit 接收多个参数时的构造函数default 与 delete模板的模板参数noexpect 设置不抛出异常lambda 函数使用...原创 2019-05-14 16:54:04 · 913 阅读 · 0 评论 -
C++ STL标准库 算法
目录一、C++标准库算法的本质二、各种容器的迭代器2.1迭代器的分类2.2迭代器分类对算法的影响distance:advance:copy:2.3算法中对要求的 iterator 类型的暗示一、C++标准库算法的本质容器 Container 是一个 class template 算法 Algorithm 是一个 function template 迭代器...原创 2018-12-28 23:00:22 · 961 阅读 · 1 评论 -
C++ STL标准库与泛型编程(四)Deque、Queue、Stack 深度探索
一、Deque 深度探索双向扩充队列push_front()pop_front()push_back() pop_back()内存中是分段连续的buffer,每次扩充时,扩充一个固定的 buffer 大小。deque 本身大小为40个字节=2个 iterator (16) + 一个指针 (4) + 一个...原创 2018-12-26 16:02:45 · 282 阅读 · 0 评论