序列式容器----vector

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-06 17:28:13

序列式容器----vector的相关文章

序列式容器————vector

目录 介绍 1 创建 2 容量和大小 size() capacity() 3 resize() 4 reverse() 5 获取元素 front() back() 6 迭代器(待补充) 7 push_back() 8 emplace_back() 9 emplace()(待补充) 10 insert() 11 clear() 12 remove() 13 pop_back() 14 shrink_to_fit() 15 erase() 介绍 和 array<T,N> 容器相似,不同的是 vec

STL浅析——序列式容器vector的构造和内存管理: constructor() 和 push_back()

咱们先来做一个测试capacity是容器容量,size是大小: #include <iostream> #include <vector> using namespace std; int main(){ vector<int> result; for (int i = 0; i < 17; i++) { result.push_back(i); printf("element count: %d\t", result.size()); pri

STL:序列式容器vector总结

说起数组我们都不陌生,但在C++中,除了数组还多了一个"新朋友"那就是vector.其实vector本质上与array的数据安排以及操作方式也其为相似.它俩唯一的差别就是空间灵活性. 无论在C语言还是C++中,array的空间一旦申请完成就不能进行更改,如果需要更大空间来存储数据,便得重新申请一个新的数组并将原来的数值拷贝过去,然后再将原来数组释放,而这一切都需要用户自己完成.而vector不同的是,它的空间分配更加灵活,当他内存不够存放时,它内部机制会自行进行容量扩充,这对于程序员来

C++ STL序列式容器优缺点记录

STL中有三种序列式容器vector,list,deque.对其分别进行性能介绍 vector: vector内部是通过连续的动态内存空间(dynamic array)去管理的,每push_back一个元素,将安插到array尾部. 这种通过连续的内存空间去管理的方式,可以方便我们去通过下标索引到值,在其尾部的插入和删除效率都非常之高. 当在vector内部去进行插入和删除则会导致vector容器元素去移动位置,因此效能较差 deque: deque是一个双端队列,可在首尾进行元素的插入和删除.

stl源码剖析-序列式容器 之 vector

vector的数据安排以及操作方式,与array(c++自身提供的序列式容器)非常相似.两者唯一的差别在于空间的运用的灵活性.array是静态空间,一旦配置了将不能随意更改其大小,若要更改需要重新配置一块新的空间,如何将元素从旧址中一一搬迁,再释放原来的系统.而vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间已容纳新元素.(实际vector每次动态分配的空间大小是有限的,超过了这个临界值同样是要像array一样进行元素搬迁,下面将会进行详细介绍)vector 是最常用的 C++

STL学习笔记(序列式容器)

Vector Vector是一个动态数组. 1.Vector的操作函数 构造.拷贝和析构 vector<Elem> c //产生一个空vector ,其中没有任何元素 vector<Elem> c1(c2) //产生另一个同型vector的副本,(所有元素都被拷贝) vector<Elem> c(n) //利用元素的default构造函数生成一个大小为n的vector vector<Elem> c(n,elem) //产生一个大小为n的vector,每个元素

序列式容器

目录 容器结构分类 通过萃取机traits萃取迭代器的型别 容器list list的定义 list的node定义 list的iterator 容器vector vector的定义 vector的iterator vector 的大小 array array的定义 forward_list forward_list与list的区别 deque deque的定义 deque的iterator 容器结构分类 这里的衍生,并非继承关系,而是一种包含关系. 例如heap中包含一个vector. 通过萃取机

Ch4 序列式容器(下)

4.7 heap(隐式表述:implicit representation) 4.7.1 heap概述 binary max heap作为priority queue的底层机制,原因是: binary heap:完全二叉树的结构可以保证整棵树没有节点漏洞,用array来表示这棵树的时候,只需要从array[1]开始保存(#0元素设为无限大或无限小),那么位于array第i个的节点,其左子节点就是第2*i个,右子节点是第2*i+1个,父节点是第i/2(向下取整)个.--这种以array表述tree

《STL源码剖析》读书笔记之序列式容器(3)

1.heap heap不属于STL容器组件,它是priority queue的底层实现机制. (1)push_heap算法 向堆中加入元素,首先将要加入的元素放到堆所在数组的末端,然后再对这个元素进行上溯操作,直到新堆合法为止.如下图所示: (2)pop_heap算法 pop_heap操作取走堆中的最大(小)值.根据堆的特性,堆的最大(小)值必定是堆所存数组的第一个元素.取堆的最大(小)元素时,将堆的最后一个元素和堆的第一个元素互换,然后再对第一个元素进行下溯操作,直到新堆满足堆的定义.下图给出