vector的存储时自动管理的,按需扩张。vector通常占用多于静态数组的空间,因为要分配更多内存以管理将来的增长。vector所用的方式不在每次插入元素时,而只在额外内存耗尽时重分配,分配的内存总量可用capacity()函数查询。额外内存可通过对shrink_to_fit()的调用返回给系统。重分配通常时性能上有开销的操作。若元素数量已知。
vector(向量): 不定长数组,相比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而vector正好弥补了这个缺陷,它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。 特点 拥有一段连续的内存空间,并且起始地址不变,因此它能非常好的支持随机访问,即[]操作符和.at()...
STL(Standard Template Library)标准模板库 STL六大组件 容器(containers) 算法(algorithms) 迭代器(iterators) 仿函数(functors) 配接器(adaptors) 配置器(allocators) 1.容器 1. 序列式容器 1.vector 1.vector迭代器是Random Access Iterators。 2.所采用数据结构是线性连续空间。初始化,指定配置n个空间。 3....
begin():It returns a iterator pointing to the first element of the vector. end():It returns a iterator pointing to the last elements of the vector. size():This function returns the size(number of elements) of the vector. clear():It removes all the elements of the vector, making it em...
以下简单介绍前三个组件,让大家领略一下template的强大弹性。 一、STL Cintainers STL实现了一些常用的数据结构,这些结构用来收容许多数据,所以被称为container,主要分为两大类: 1. sequence container:内含有序而类型一致的元素。例如vector(也就是array)和list,以及deque。deque的行为类似vector,但对于插入(insertion...
1.2std::vector --> dynamic array The elements arestored contiguously in memory, which means that elements can be accessed not only through iterators but also using offsets to regular pointers to elements. Random access - constant(1) push_back(int x), pop_back()Insertion or removal of eleme...
首先包含vector容器头文件和算法algorithm头文件 #include<vector>#include<algorithm> 1. 2. voidtest01(){//创建vector容器对象,并且通过模板参数指定容器中存放的数据的类型vector<int>v;//向容器中放数据v.push_back(10);v.push_back(20);v.push_back(30);v.push_back(40);//每一个容器都有自己的迭...
STL(Standard Template Library),标准模板库,从根本上说,STL是一些容器的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。这里的“容器”和算法的集合指的是世界上很多聪明人很多年的杰作。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不...
for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter) { cout << *iter <<endl; //使用 * 访问迭代器所指向的元素 *iter = 0 //赋值为0 } eg: #include <string> #include <vector> #include <set> #include <deque> ...
vector& operator=(const vector &vec);//重载等号操作符 assign(beg, end);//将[beg, end)区间中的数据拷贝赋值给本身。 assign(n, elem);//将n个elem拷贝赋值给本身。 vector容量和大小 empty();//判断容器是否为空 capacity();//容器的容量 ...