模板是C++中泛型编程的基础。一个模板就是一个创建类或函数的蓝图或者说公式。我们先从模板的定义开始:
继续阅读“第16章 模板与泛型编程”
月份:2016年10月
初识Git版本回滚功能
有的时候我们会遇到这样的问题,提交修改的代码之后发现代码存在bug,这个时候我们应该怎么办呢?使用reset命令进行版本的回滚即可。
继续阅读“初识Git版本回滚功能”
STL源码之queue深入学习
queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口。queue允许新增元素、移除元素、从最底端加入元素、取得最顶端元素。
继续阅读“STL源码之queue深入学习”
STL源码之stack深入学习
学完STL中vector, list, deque这三个较为复杂序列式容器之后,序列式容器中还剩下stack, queue以及priority-queue三部分内容。我们前面提及到,stack和queue由于是以deque为底部结构,技术上被归类为一种配接器(adapter)。
继续阅读“STL源码之stack深入学习”
初识Git(分布式版本控制系统)
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
继续阅读“初识Git(分布式版本控制系统)”
STL源码之deque容器深入学习
vector和deque都是连续线性空间,这往往给我们造成一种假设,认为vector和deque的区别仅仅在于一个单向一个双向。但是剖开它们的源码分析,会发现deque和vector的内部实现机制迥然不同,并且deque要复杂的多。
继续阅读“STL源码之deque容器深入学习”
STL源码之list容器深入学习
上一篇总结了vector的相关内容,这一次我们接着容器的相关知识进行学习。list和vector是两个最常使用的容器,list较vector要复杂的多。但复杂的背后给我们带来的是使用上的便捷:
继续阅读“STL源码之list容器深入学习”
STL源码之vector容器深入学习
任何特定的数据结构都是为了实现某种特定的算法,STL容器也不例外。在进入vector容器的学习之前,我们先来梳理一下有关容器相关的概念。
继续阅读“STL源码之vector容器深入学习”
STL之迭代器(iterator)与traits编程技法深入学习
学习STL就不得不学习iterator,我们知道STL的中心思想——将数据容器和算法分开,彼此独立设计,再以一贴胶着剂将它们撮合在一起。
继续阅读“STL之迭代器(iterator)与traits编程技法深入学习”
STL第二级配置器__default_alloc_template
我们知道,SGI STL的第一级配置器是直接使用malloc(), free(), realloc()并配合类似C++ new-handler机制实现的。第二级配置器的工作机制要根据区块的大小是否大于128bytes来采取不同的策略:
继续阅读“STL第二级配置器__default_alloc_template”