1.1 vector(数组)封装动态数组的顺序容器。 1.2 queue(队列)是容器适配器,他是FIFO(先进先出)的数据结构。 1.3 deque(双端队列)是有下标顺序容器,它允许在其首尾两段快速插入和删除。 1.4 set(集合)集合基于红黑树实现,有自动排序的功能,并且不能存放重复的元素。 1.5 unordered_set(无序集合)基于哈希表
vector 是一种动态数组,在内存中具有连续的存储空间,支持快速随机访问,由于具有连续的存储空间,所以在插入和删除操作方面,效率比较慢。 当 vector 的大小和容量相等(size==capacity)时,如果再向其添加元素,那么 vector 就需要扩容。vector 容器扩容的过程需要经历以下 3 步: 重新在堆上创建更大的动态数组,大小是原...
vector有两个函数,一个是capacity(),返回对象缓冲区(vector维护的内存空间)实际申请的空间大小,另一个size(),返回当前对象缓冲区存储数据的个数。对于vector来说,capacity是永远大于等于size的,档capacity和size相等时,vector就会扩容,capacity变大。 调用push_back当空间不够装下数据时会自动申请另一片更大的空间(一...
Ⅲ. vector 的扩容 0x00 引入:先把 reserve 写咯 我们要实现 vector 的 insert,肯定需要用到增容,我们这里当然不会傻傻地重写一遍。 我们可以把刚才写 push_back 实现的增容部分拎出来,实现一个 CheckCapacity 函数。 但是我们这里可以直接实现出 reserve,到时候实现 resize 所以,我们先实现 reserve,顺便把 resize ...
STL中的容器有队列容器和关联容器,容器适配器(congtainer adapters:stack,queue,priority queue),位集(bit_set),串包(string_package)等等。 (1)序列式容器(Sequence containers),每个元素都有固定位置--取决于插入时机和地点,和元素值无关,vector、deque、list; Vector:将元素置于一个动态数组中加以管理,可以随机...
一、set和multiset基础 set和multiset会根据特定的排序准则,自动将元素进行排序。不同的是后者允许元素重复而前者不允许。 需要包含头文件: #include <set> set和multiset都是定义在std空间里的类模板: template<class_Kty, class_Pr = less<_Kty>,
int capacity() const:返回当前向量张红所能容纳的最大元素值 int max_size() const:返回最大可允许的vector元素数量值 7.其他函数 void swap(vector&):交换两个同类型向量的数据 void assign(int n,const T& x):设置向量中第n个元素的值为x
intsize=vector.size();System.out.println(size); 1. 2. 要获取Vector的容量(存储空间的大小),可以使用capacity方法: intcapacity=vector.capacity();System.out.println(capacity); 1. 2. 8. Vector 的扩容和缩容 当Vector的元素数量超过其当前容量时,容量会自动增加。可以使用ensureCapacity方法手动增加容量: ...
std::vector<T,Allocator>::rend, std::vector<T,Allocator>::crend std::vector<T,Allocator>::empty std::vector<T,Allocator>::size std::vector<T,Allocator>::max_size std::vector<T,Allocator>::reserve std::vector<T,Allocator>::capacity std::vector<T,Allocator>::shrink_to_fit std::vecto...
数组:vector(动态数组)、valarray(针对数值类型特化的 vector)、bitset(储存比特的【固定】数组) 链表:list(双向) 队列:queue、deque(双端队列) 栈:stack 映射:map(键值无重复)、multimap(键值可重复) 集合:set(元素无重复)、multiset(元素可重复) C++ 11 标准新增了如下容器: ...