学完STL中vector, list, deque这三个较为复杂序列式容器之后,序列式容器中还剩下stack, queue以及priority-queue三部分内容。我们前面提及到,stack和queue由于是以deque为底部结构,技术上被归类为一种配接器(adapter)。
继续阅读“STL源码之stack深入学习”
分类:C/C++
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”
STL第一级配置器__malloc_alloc_template
STL的价值在于两个方面,就底层而言,STL带给我们一套极具实用价值的零部件以及一个整合的组织;除此之外,STL还带给我们一个高层次的、以泛型思维(Generic Paradigm)为基础的、系统化的“软件组件分类学”。
继续阅读“STL第一级配置器__malloc_alloc_template”
【转载】C++中new/operator new/placement new的用法
上一篇总结了new和delete运算符。今天在学习::operator new的时候发现了一篇很好的博文,对new operator, operator new, placement new总结的很全面。于是转载过来,与大家分享。
继续阅读“【转载】C++中new/operator new/placement new的用法”
C++中new/delete用法总结
笔者在学习STL源码的时候发现了一个令我困惑的问题,在STL源码剖析一书中的空间配置器(allocator)章节部分,有这么一段代码:
继续阅读“C++中new/delete用法总结”