C++标准库2(侯捷)

125 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

第二讲

后面主要以gnu c++2.91版认为非常好的一个版本来讲解,这一部分核心在4.9甚至之后基本不会有改变了,但是4.9有重大不同的地方也会拿出来看看,还有一些小地方会拿vc的来做比较

源码位置

OOP vs. GP

整个C++标准库并不是用面向对象概念设计出来的(class、继承、虚函数),在gnu2.9里面没有太多的继承关系,所以很容易看,也就也没虚函数。我们再看大型面向对象库的时候,很头疼的就是继承关系复杂,虚函数复杂,但标准库没这种困扰,它主要是GP概念设计出来的

现在谈下他们的差别

list的sort要放在类内,是因为标准库的sort调用了上面两个函数,其中一个对于迭代器有加减和除,所以传进来的迭代器必须是RandomAccessIterator(随机访问迭代器,例如数组),而链表内存上是节点用指针串起来的,可以加一个减一个,但不能加n个等

关于C++标准库 源码(Source)之必要基础

Operator Overloading,操作符重载

class template,类模板

function template,函数模板

member template,成员模板

Specialization,特化

Partial Specialization,偏特化

分配器allocators