《STL源码剖析》中,指出SGI STL的list底层数据结构式循环双向链表,并且在链表尾端留一个空白节点,让end指向它。由于是双向的,那么list的迭代器必须是Bidirectional Iterator类别的。
下面,分别验证vs2010下和code blocks(gcc)下,list的底层实现是否是循环链表。
#include
#include
using namesp...
分类:
其他好文 时间:
2014-06-30 00:21:54
阅读次数:
202
都很新
C++程序设计 5元
高质量C/C++编程指南 8元
C++对象模型 10元
STL源码剖析 12元
深入浅出MFC 10元
设计模式 10元
C++ primer 8元
面向对象程序设计 5元
java语言基础教程 5元
C语言程序设计 5元
VC++数字图像处理 8元
编程之美 8元
程序员面试宝典 5元...
分类:
编程语言 时间:
2014-06-25 19:52:36
阅读次数:
196
一、简介我们在学习C++的过程中,学到STL是必然的,那么STL的入门就是vector了。vector是同一种类型的对象的集合,vector很像数组,空间是连续的,能非常高效和方便的访问单个元素,但是它支持动态增加和压缩数据,所以这是矛盾的,这个问题,我们会在后期的STL源码的分析中来..
分类:
编程语言 时间:
2014-06-16 17:20:17
阅读次数:
254
排序算法是STL算法中相当常用的一个类别,包括部分排序和全部排序算法,依据效率和应用场景进行选择。 明细: sort 函数原型: template void
sort (RandomAccessIterator first, RandomAccessIterator last); templ...
分类:
其他好文 时间:
2014-06-06 18:35:22
阅读次数:
224
第一章:引子
STL包含的算法头文件有三个:,其中最大最常用的是,今天学习的是包含的算法中的第一部分:非修改顺序操作算法。 接下来学习的算法基于C++11标准,较老的IDE会支持不全面或者部分算法不支持。 第二章:原型解析 如分类名称体现的信息,本节的所有函数都不会修改序列,并且原理上都是顺序遍.....
分类:
其他好文 时间:
2014-05-31 07:41:21
阅读次数:
255
第一章:前言
学习笔记,记录学习STL算法的一些个人所得,在以后想用的时候可以快速拾起。 第二章:明细 copy 函数原型: template OutputIterator
copy (InputIterator first, InputIterator last, OutputIterat...
分类:
其他好文 时间:
2014-05-31 04:08:50
阅读次数:
375
第一章:前言 数量不多,用到的时候会很爽。 第二章:明细 STL算法中的又一个分类:分割;将已有元素按照既定规则分割成两部分。 is_partitioned 函数原型: template
bool is_partitioned (InputIterator first, InputIterat...
分类:
其他好文 时间:
2014-05-31 03:19:43
阅读次数:
230
第一节:vector简介 vector是一种典型的类模板,使用的时候必须进行实例化。 vector的数据存储在数组上,支持随机访问迭代器,支持下标操作[]和at操作,支持手动扩容和自动容量增长。 vector是STL中的最常用容器,并支持STL的通用算法。第二节:vector的迭代器介绍 vecto...
分类:
其他好文 时间:
2014-05-29 09:46:33
阅读次数:
230
[QQ群: 189191838,对算法和C++感兴趣可以进来] 直接逼入正题。Standard
Template
Library简称STL。STL可分为容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adaptors)、算法(algorit...
分类:
其他好文 时间:
2014-05-14 03:55:43
阅读次数:
273
一棵AVL树是其每个节点的左子树和右子树的高度最多差1的二叉查找树。实际高度只比logN多以一点,和普通二叉查找树相比,平衡二叉搜索树一般而言搜寻时间可节省25%左右(STL源码剖析P203)。
只有那些从插入点到根节点的路径上的节点的平衡可能被改变,因为只有这些节点的子树可能发生变化。
把需要重新平衡的节点称为a(左右子树高度差大于1)。注意,确定这个节点很重要,否则无法确定...
分类:
其他好文 时间:
2014-05-10 09:57:21
阅读次数:
406