最近一直在看侯捷写的《STL源码剖析》小有想法。故此一记


1,三者之间联系:

         每个容器都有专属的迭代器,而算法通过迭代器对容器中的元素进行操作。

2,容器

     容器能够通过模版的方法,装下各种类型的节点元素。

3,迭代器是一种smart pointer

        迭代器是一种行为类似指针的对象。迭代器所指向的对象为容器中元素(结构体)的节点。

如定义一个 class   List  的容器 ,容器的节点为ListItem,那么迭代器就应该指向(的对象)容器中的ListItem节点。

而迭代器通过重载 * (解引用)运算符,从而就可以得到节点的值。通过重载operator -> 运算符就可以得到容器节点地址(指针)

4,算法:

          算法通过操作容器对应的迭代器,就可以间接地操作容器中的元素。而不需要关注容器的内部细节

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐