前言: 本文总结概括SGI STL源码中二级配置器的工作方式,主要是学习内存池+16条链表的内存分配方式。 无论一级配置器还是二级配置器,统一的接口如下: //其中Alloc可能是一级配置器,也有可能是二级配置器; //这个类的作用其实就是单纯地转给一级或者二级配置器调用; template<cla ...
分类:
其他好文 时间:
2020-05-03 20:41:16
阅读次数:
56
正确释放Vector等STL的内存执行 clear() 之后内存并没有释放 《Effective STL》给出的解决方案是: vector<type> v;//.... 这里添加许多元素给v//.... 这里删除v中的许多元素 vector<type>().swap(v);//此时v的容量已经尽可能 ...
分类:
其他好文 时间:
2020-05-03 20:36:13
阅读次数:
51
数组在分配内存的时候是一块连续的空间,并且每个元素的内存是一样的,因此可以用下标快速访问;但正因为如此,在其中插入或者删除的操作就比较麻烦,要移动别的元素的位置,因此需要快速访问存取并且不频繁增删就用数组; 链表list的每个元素使用指针相互链接,分配的空间比较自由,每个元素可以不同类型不同大小,但 ...
分类:
编程语言 时间:
2020-05-03 14:38:41
阅读次数:
64
<!-- jsp --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> <scope>provided</scope> ...
分类:
编程语言 时间:
2020-05-03 10:42:34
阅读次数:
58
通用的容器分为三类:顺序性容器、关联式容器和容器适配器。 一、顺序性容器 顺序性容器是一种各元素之间有顺序关系的线性表,除非用插入、删除的操作改变位置,否则元素在容器中的位置与元素本身没有关系,只与操作的时间和地点相关(时间:什么时候添加的元素,地点:元素添加到了那个位置);常用的顺序性容器有:ve ...
分类:
其他好文 时间:
2020-05-03 01:15:12
阅读次数:
79
1. deque 的大小 deque.size(); //返回容器中元素的个数 1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 deque<int> deqInt_A; 9 ...
分类:
其他好文 时间:
2020-05-03 01:02:32
阅读次数:
68
1. deque 的赋值 deque.assign(beg,end); //将[beg, end)区间中的数据拷贝赋值给本身。注意该区间是左闭右开的区间。 deque.assign(n,elem); //将n个elem拷贝赋值给本身。 deque& operator=(const deque &de ...
分类:
其他好文 时间:
2020-05-02 23:15:11
阅读次数:
91
c++中的STL 中的优先队列 参照网址: https://www.cnblogs.com/xzxl/p/7266404.html 代码示例 https://www.cnblogs.com/zhouzhihao/p/10974594.html 优先队列 //date:2020.5.2 #includ ...
分类:
编程语言 时间:
2020-05-02 10:08:23
阅读次数:
51
最近在研究STL的空间配置器的时候,使用到内存池和定位new的场景,感觉知识优点遗忘,总结总结首先,什么是定位new??官方解释:我的理解:先申请一块内存空间,然后在这段空间上来构造对象(确定对象的位置),常使用到的场景是内存池内置类型使用规则:#include<new>//或者使用#include<iostream>,因为<iostream>中包含<ne
分类:
其他好文 时间:
2020-05-02 00:09:32
阅读次数:
52
原文 https://stackoverflow.com/questions/1853243/do you really write exception safe code https://en.cppreference.com/w/cpp/language/exceptions Exception ...
分类:
其他好文 时间:
2020-05-01 20:13:26
阅读次数:
58