C++ STL - 1 - List List G2.9 List自己本身只有一个指针指向了一个节点。它的数据__list_node和数据结构list是分开设计的。 数据本身不做过多叙述。一个指针指向前一个节点,一个指针指向下一个节点,一块数据区域。 List的迭代器 注意i++和++i的重载区别 在C++中,由于++i和i++都只有一个参数,那么...
C++ STL - 2 - 迭代器设计思路。萃取。 什么是萃取? 三个字:中间层 我们这里先以侯捷老师的iterator_traits做为例子。 我们知道,iterator迭代器本身有五个属性。我们也知道迭代器是一个class。所以也就是迭代器类有五个typedef。分别是: 1 2 3 4 5 6 7 8 9 10 11 12 namespace std { tem...
Effective STL 笔记 第二条:不要试图编写独立于容器类型的代码。 STL 是以泛化原则为基础的: 数组被泛化为”以其包含的对象的类型为参数“的容器; 函数被泛化为”以其使用的迭代器的类型为参数“的算法; 指针被泛化为”以其指向的对象的类型为参数“的迭代器; 容器被泛化为”序列式和关联式“容器。 个人理解一句话:别给多个容器写一个通用的函数。没有意义而且...
C++ STL - 1 - List
C++ STL - 2 - 迭代器设计思路。萃取。