STL标准库
文章平均质量分 81
一起学习STL
小呆鸟_coding
阿里云专家博主,在读机器人研究生,喜欢编程,通过写文章记录自己的生活,以及学习的点点滴滴。希望我们共勉。一起努力冲向远方
展开
-
【C++内存管理源码解读】
SGI STL的空间配置器与众不同,且与STL标准规范不同。SGI STL的每一个容器都已经指定缺省的空间配置器是alloc。对于new来说,编译器会先调用::operator new分配内存;然后调用Obj::Obj()构造对象内容。对于delete来说,编译器会先调用Obj::~Obj()析构对象;然后调用::operator delete释放空间。标准STL allocator决定将这两个阶段操作区分开来。对象构造由::construct()负责;对象释放由::destroy()负责。原创 2023-07-10 16:54:33 · 317 阅读 · 0 评论 -
【STL迭代器源码解读】
trivial destructor”一般是指用户没有自定义析构函数,而由系统生成的,这种析构函数称为不重要的析构函数(trivial destructor)首先利用value_type()获取所指对象的型别,再利用__type_traits判断该型别的析构函数是否trivial,若是(__true_type),则什么也不做,若为(__false_type),则去调用destory()函数。原创 2023-07-10 16:51:27 · 402 阅读 · 0 评论 -
【STL基本用法】
代码】【STL基本用法】原创 2022-07-15 11:28:51 · 412 阅读 · 39 评论 -
二.traits(萃取机)
文章目录一.traits(萃取机)2.__type_traits负责萃取型别的特性。举个例子:uninitalized_fill_n一.traits(萃取机)traits分为俩种:####1.iterator_traits负责萃取迭代器的性质(迭代器的特性->相应性别)。迭代器相应的型别分为五种:value type,difference type,pointer,reference,iterator_catagaly。 value type--------------迭代.原创 2022-02-17 22:18:13 · 607 阅读 · 5 评论 -
三.vector的实现原理
文章目录一.vector的实现原理1.vector 基类介绍2.vector从最后面插入元素时发生了什么2.1对空vector插入一个元素2.2vector当前内存用完时插入4.vector删除元素内存会被释放吗4.1从容器最后删除4.2从容器中间删除5.vector如何修改某个位置的元素值6.vector读取与插入元素的时间复杂度7.vector基本算法8.vector底层实现总结二.vector的注意事项3. vector的迭代器会失效的原因4. vector怎么迅速的释放内存4.1 通过swap函数4原创 2022-02-17 22:16:07 · 4877 阅读 · 6 评论 -
一.空间分配器
文章目录一.空间分配器分配内存:rfill工作流程:chunk_alloc工作流程:收回内存:第一级配置器:第二级配置器:一.空间分配器分配内存:当容器需要空间来存放元素时,需要空间配置器(也就是分配器)分配内存,当分配的内存大于128个字节时,调用第一级配置器,调用malloc为其分配内存,当分配内存小于128个字节时,调用第二级配置器,检查对应的free-list上是否有可用区块,如果有的话,直接拿来用,如果没有的话调用rfill。rfill工作流程:当发现free list中没有原创 2022-02-18 10:27:34 · 322 阅读 · 2 评论