
C++ STL循序渐进
文章平均质量分 70
记录从C++STL使用到STL源码学习的笔记。
空空的司马
微信搜『程序员加油站』,回复『pdfs』获取优质电子书
展开
-
C++STL学习(13)STL深入(2) SGI STL空间配置器
注:博客内容均来自于对《STL源码剖析》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。所有例程在Dev-C++上编译运行,编译选择的是GUN C++11。1、SGI的STL空间配置器2、SGI的标准空间配置器SGI的标准空间配置器很上一篇博客中的空间配置器大体上基本一样。可以对比看两者的实现上一篇// 开头的这段声明原创 2015-10-30 11:40:35 · 2299 阅读 · 0 评论 -
C++STL学习(12)STL深入(1) 设计简单的空间配置器
注:博客内容均来自于对《STL源码剖析》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。所有例程在Dev-C++上编译运行,编译选择的是GUN C++11。1、写在前面 从这一片博客开始,对STL进行更深入的学习。《STL源码剖析》的笔记中的个人看法和理解,难免存在不妥之处,如果觉得不妥,敬请留言指正。相互交流,探讨,学习才能共同进步。2、空间配置器原创 2015-10-28 14:08:23 · 2426 阅读 · 1 评论 -
C++STL学习(11)STL算法(2)
注:C++ STL算法部分主要直接来阅读STL源码库,源码来源于http://www.cplusplus.com/网站。阅读了下网站上对STL的算法,才发现讲解的已经够清楚了,那么久熟悉下STL中都有哪些算法,来方便日后的使用。从下篇开始就跟着《STL源码剖析》来深入学校STL中的各种实现问题。接上一篇博客,STL中的其他算法,列举如下:原创 2015-10-26 14:59:56 · 1774 阅读 · 0 评论 -
C++STL学习(10)STL算法(1)
注:C++ STL算法部分主要直接来阅读STL源码库,源码来源于http://www.cplusplus.com/网站。《C++标准库》侯捷,华中科技大学出版社一书是在2001年出版的,之前的例程中不涉及C++11新标准,最新的源码库中有相当部分的算法采用了新标准。所以在原来的 g++ (GCC) 3.2.2 20030222 上编译无法通过。为了方便起见,就选用dev-c++来进行编译原创 2015-10-25 13:27:58 · 2165 阅读 · 0 评论 -
C++STL学习(9)仿函数(function objects, functor)
注:博客内容均来自于对《C++标准库》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。所有例程在Red Hat Linux 3.2.2-5版本上编译运行,g++的版本是 g++ (GCC) 3.2.2 20030222。1、仿函数 仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类原创 2015-10-22 11:34:01 · 3389 阅读 · 4 评论 -
C++STL学习(8)迭代器
注:博客内容均来自于对《C++标准库》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。所有例程在Red Hat Linux 3.2.2-5版本上编译运行,g++的版本是 g++ (GCC) 3.2.2 20030222。1、迭代器到底是什么? 根据书上定义:迭代器是一种“能够遍历某个序列内所有元素”的对象。我们可以将它理解成为一个指针,它指向容器中的元素,可以原创 2015-10-20 10:13:49 · 2103 阅读 · 0 评论 -
C++STL学习(7)各种容器总结
注:博客内容均来自于对《C++标准库》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。所有例程在Red Hat Linux 3.2.2-5版本上编译运行,g++的版本是 g++ (GCC) 3.2.2 20030222。1、何种情况运用何种容器各种容器的特性表:附加一些规则:2、异常处理注:博客内容均来自于对《原创 2015-10-19 19:04:53 · 2089 阅读 · 0 评论 -
C++STL学习(6)其他容器(string,array,hashtable等)
注:博客内容均来自于对《C++标准库》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。1、string可以作为容器使用#include #include #include #include using namespace std;int main(int argc, char *argv[]){ string s("The zip code of Hond原创 2015-10-18 19:56:28 · 2179 阅读 · 0 评论 -
C++STL学习(5)容器map和multimap
注:博客内容均来自于对《C++标准库》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。1、map和multimap map、multimap同set、multiset非常相似,他们里面的元素也都是“有序的”。也会根据规定的排序准则排序。不同的是map和multimap的元素都是键/值对的形式。除此之外他们并无其他的本质区别。set和multiset参见博客:原创 2015-10-16 14:57:19 · 2957 阅读 · 0 评论 -
C++STL学习(4)容器set和multiset
注:博客内容均来自于对《C++标准库》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。1、set和multiset set和multiset里面的元素都是“有序的”。因为set和multiset会根据特定的排序准则,自动将元素排序。不同的是set容器里面不允许有重复的元素,multiset容器允许存在重复的元素。 set和multiset通常都是以平衡二叉树来实现原创 2015-10-15 14:37:13 · 2376 阅读 · 0 评论 -
C++STL学习(3)容器list
注:博客内容均来自于对《C++标准库》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。1、listlist使用一个双向链表(doubly linked list)来管理元素。2、list与vector,deque的区别3、list的操作函数4、list例子#include #inc原创 2015-10-14 16:20:23 · 2089 阅读 · 0 评论 -
C++STL学习(2)容器deque
注:博客内容均来自于对《C++标准库》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。1、Deques 容器deque和vector非常相似。也是采用动态数组来管理元素,提供随机存取。并且有着和vector一样的接口。但是deque的动态数组头尾都是开放的,因此能在头尾两端进行快速的添加和删除操作。deque通常实现为一组独立区块,第一区块向一方向扩展,最后一区块向原创 2015-10-14 14:42:06 · 2055 阅读 · 0 评论 -
C++STL学习(1)容器vector
注:博客内容均来自于对《C++标准库》侯捷,华中科技大学出版社一书的笔记。转载请注明出处。所有例程在Red Hat Linux 3.2.2-5版本上编译运行g++的版本是 g++ (GCC) 3.2.2 20030222vector可以理解成一个动态数组,vector的结构可以用下图来理解。 vector的特性:vector支持随机存储。可以在常数时间内存取任何一个元素。原创 2015-10-13 15:23:46 · 3431 阅读 · 0 评论 -
C++内存管理(2)—内存操作相关函数
转载请注明出处:https://www.jianshu.com/p/ca51012db547C++内存管理(1)——分配和释放的四个层面 上一篇中从整体上来看系统中四个层面上内存的分配和释放,这样我们就对内存分配有了一个整体的认识。这一节则详细的来写写这四个层面中的操作符或函数的使用方法,以及他们背后的调用关系。首先我们从我们使用最多的new和delete来说起。1. new 和 dele...原创 2019-01-15 23:49:41 · 751 阅读 · 0 评论