本文已参与「新人创作礼」活动,一起开启掘金创作之路。
第二讲
后面主要以gnu c++2.91版认为非常好的一个版本来讲解,这一部分核心在4.9甚至之后基本不会有改变了,但是4.9有重大不同的地方也会拿出来看看,还有一些小地方会拿vc的来做比较
源码位置
OOP vs. GP
整个C++标准库并不是用面向对象概念设计出来的(class、继承、虚函数),在gnu2.9里面没有太多的继承关系,所以很容易看,也就也没虚函数。我们再看大型面向对象库的时候,很头疼的就是继承关系复杂,虚函数复杂,但标准库没这种困扰,它主要是GP概念设计出来的
现在谈下他们的差别
list的sort要放在类内,是因为标准库的sort调用了上面两个函数,其中一个对于迭代器有加减和除,所以传进来的迭代器必须是RandomAccessIterator(随机访问迭代器,例如数组),而链表内存上是节点用指针串起来的,可以加一个减一个,但不能加n个等