![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
mxYlulu
ACM燃烧我的卡路里
展开
-
malloc和内存池原理
事先声明,两者没有特别的联系。 malloc 结论: 1、当开辟的空间<128k,调用brk函数,主要移动指针 _enddata(此时的_enddata指的是Linux地址空间中堆段的末尾地址,不是数据段的末尾地址)。 2、当开辟的空间大于 128K时,mmap()系统调用函数来在虚拟地址空间中(堆和栈中间,称为“文件映射区域”的地方)找一块空间来开辟。 这两者都是分配虚拟内存,没有分配物理内存。在第一次访问已分配的虚拟地址空间的时候,发生缺页中断,操作系统负责分配物理内存,然后建立虚拟内存和物理内存原创 2020-08-21 13:09:50 · 968 阅读 · 0 评论 -
STL容器
vector start和finish指向范围,end_of_storage指向尾端 push_back(): 检查是否有备用空间,如果有就构造元素,调整迭代器finish,如果不够,就扩充空间(重新配置、移动数据、释放原空间) pos_back():将尾端元素拿掉 erase(first,last): 清除区间内不包括(last)的数据,原理是先把后面复制到前面,然后删除后面。 clear:用erase实现。 insert:在指定位置前插入元素,原理是把后面的数据移动到插入后的后面位置,然后插入。(实际操原创 2020-08-19 18:07:36 · 113 阅读 · 0 评论