1. List 容器的基本概念 1. list 是一个双向链表容器,可高效的进行插入删除元素,他的原理在于每个元素都有两个指针来记录前后两个元素的地址,像火车车厢一样,list 中各个元素在物理存储单元上非连续,是通过指针相连在一起的。 2. 相较于vector的连续线性空间,list会显得复杂许多 ...
分类:
其他好文 时间:
2020-05-04 00:52:48
阅读次数:
52
deque.clear(); //移除容器的所有数据 deque.erase(beg,end); //删除[beg,end)区间的数据,返回下一个数据的位置。 deque.erase(pos); //删除pos位置的数据,返回下一个数据的位置。 ...
分类:
其他好文 时间:
2020-05-03 22:00:32
阅读次数:
103
deque.insert(pos,elem); //在pos位置插入一个elem元素的拷贝,返回新数据的位置。 1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 deque<i ...
分类:
其他好文 时间:
2020-05-03 21:51:02
阅读次数:
112
前言: 本文总结概括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