首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
C++
曾格爱自研
创建于2023-08-03
订阅专栏
C++主语言
暂无订阅
共11篇文章
创建于2023-08-03
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
深度探索C++对象模型(二):构造函数语意学
C++编译器在以下4种情况默认构造函数被认为是nontrivial的,需要被合成出来。内含的类成员变量有默认构造函数,而自己没有
深度探索C++对象模型(一):关于对象
现用C++对象模型 在c++中,有两种类数据成员:static 和 nonstatic;三种类函数成员:static、nonstatic、virtual。 函数都放到代码区,而static成员都放到静
STL源码剖析(五):算法
算法分类: 质变算法:在运算过程中会改变迭代器指向的值。质变算法一般提供两个版本,一是就地进行版本,如sort,另一个就是异地进行(copy)版本,如repalce()的另一个版本replace_co
STL源码剖析(四):容器(6) hashtable
set和map也可以基于hashtable实现,但是这样set和map是无序的,因为hashtable本身就是无序的。 hashtable节点结构 以哈希链表为例,其结构就是一个buckets vec
STL源码剖析(四):容器(5)set和map
之前讲的都是序列式容器,现在开始进入到关联式容器,关联式容器主要以Rb-tree和hash-table做为底层结构。 Rb-tree的节点设计 RB-tree结构和迭代器也是采用继承机制 节点结构
STL源码剖析(三):容器(4)priority_queue
Heap priority_queue的底层结构为max heap(也可以是min heap,本文统一只叙述max heap),heap并不属于STL的容器组件. heap是一颗完全二叉树:整颗树除了
STL源码剖析(三):容器(3)deque
数据结构 deque从直观上看上去是这样的,一段可两端进出的连续空间: 但其实它是分段的: 其主要结构包括中控器(map)+多个分段,其迭代器中的4个字段的作用分别为:node:指向哪个分段,firs
STL源码剖析(三):容器(2)List和sList
list是一个双向链表,为了满足半开半闭区间性质,还添加了一个用来标志的尾节点。 list迭代器 list插入和接合操作不会造成原迭代器失效,而在vector中是行不通的;而不能向vector用原生指
STL源码剖析(三):容器(1)vector
先来一张侯捷书上的图吧 容器的衍生并不是通过继承,而是通过组合。比如:stack和queue里包含一个deque,set和map里包含一个rb-tree或hash_table。 vector vect
STL源码剖析(二):迭代器与traits编程技法
为了使迭代器不暴露容器的成员及函数,一般将迭代器的开发工作交由容器的设计者,因此,STL每一种STL容器都提供专属的迭代器。 迭代器类型识别 C++不支持typeof(),即便动用RTTI性质中的ty
STL源码剖析(一):空间配置器allocator
源码下载地址: https://github.com/steveLauwh/SGI-STL 空间分配函数 首先需要了解内存分配的一个过程:程序调用=》allocator=》new=》malloc=