STL学习(三)

181 阅读1分钟

一边看侯捷老师(STL源码分析)课程,一边记录下来,仅是给自己当笔记看的。

1.容器之间的关系实现与分类

2.深度探索list

list的本身就是node(指针),它里面除了data,还有前后两个指针(两个字节),但它要实现环状,一定要有一个是虚的,前闭后开。

修正(链表的指针应该指向自己本身)

iterator :(class)都是一个聪明的指针*(智能指针),指引指向。

iterator必须包含5个typedef和操作符重载。利用这两个去找寻下一个指引。
区分前++和后++,前++不带参数,后++带一个参数(只是形式上的)。

2.9和4.9内存差异,2.9一个node,4个字节,但4.9list有继承父类,父类包含连个最前和最后所指的那块虚空间,所以是8,如下图:

3.迭代器的设计原则(iterator traits)

如果提问的是指针,指针无法回答,这是就需要用到traits