void reserve (size_type n); reserver函数用来给vector预分配存储区大小,即capacity的值 ,但是没有给这段内存进行初始化.reserve 的参数n是推荐预分配内存的大小,实际分配的可能等于或大于这个值,即n大于capacity的值,就会reallocate内存 capacity的值会大于或者等于n .这样,当调用push_back函数使得size 超过原来的默认分配的capacity值时 避免了内存重分配开销. 需要注意的是:reserve 函数分配…
http://www.cnblogs.com/biyeymyhjob/archive/2013/05/11/3072893.html…
先看看<C++ Primer>中对resize()函数两种用法的介绍: 1.resize(n) 调整容器的长度大小,使其能容纳n个元素. 如果n小于容器的当前的size,则删除多出来的元素. 否则,添加采用值初始化的元素. 2. resize(n,t) 多一个参数t,将所有新添加的元素初始化为t. 而reserver()的用法只有一种 reserve(n) 预分配n个元素的存储空间. 了解这两个函数的区别,首先要搞清楚容器的capacity(容量)与size(长度)的区别. size指容器当前…
先看看<C++ Primer>中对resize()函数两种用法的介绍: 1.resize(n) 调整容器的长度大小,使其能容纳n个元素. 如果n小于容器的当前的size,则删除多出来的元素. 否则,添加采用值初始化的元素. 2. resize(n,t) 多一个参数t,将所有新添加的元素初始化为t. 而reserver()的用法只有一种 reserve(n) 预分配n个元素的存储空间. 了解这两个函数的区别,首先要搞清楚容器的capacity(容量)与size(长度)的区别. size指容器当前…
C++ STL 库中 vector 容器的 resize 和 reserve 区别是什么? 1. resize 改变 size 大小,而 reserve 改变 capacity, 不改变size. 2. vector内部其实包含了三个指针, 如下图: resize()------改变 finish 指针 reserve()----改变 end_of_storage 指针 3. [finish, end_of_storage)中的内存是没有调用过vector中的元素的构造函数的. 所以, 如下的这…
push_back   就是在vector的末尾插入一个元素, vector 中的erase()函数,从指定容器删除指定位置的元素或者某段范围内的元素,删除之后,返回值也是一个迭代器,指向最后一个删除元素的下一个元素, 出现的问题就是:迭代器变成了一个野指针,需要重新把迭代器的指针指向begin或者把返回的迭代器赋值给原来的迭代器,否则会报编译错误 iter = vetcor.erase(iter); or: vectore.erase(iter); iter=v1.begin;…
在vector中与size()和capacity() 相对应的有两个函数: resize(size_type)和reserve(size_type). Size指目前容器中实际有多少元素,对应的resize(size_type)会在容器尾添加或删除一些元素,来调整容器中实际的内容,使容器达到指定的大小. Capacity指最少要多少元素才会使其容量重新分配,对应reserve(size_type new_size)会这置这个capacity值,使它不小于所指定的new_size. 所以用rese…
注释如下: iterator erase(iterator it);       // 删除指定元素,并返回删除元素后一个元素的位置(如果无元素,返回end())iterator erase(iterator first, iterator last); // 删除[first,last)对应的元素,也即first对应元素被删除,last对应的元素不被删除,并返回最后一个被删除元素的下一个元素位置, //对本函数也即为迭代器last. //注意:删除元素后,删除点之后的元素对应的迭代器不再有效.…
STL 三种顺序容器的特性对比: vector 可变数组,内存空间是连续的,容量不会进行缩减.支持高效随机存取,即支持[]和at()操作.尾部插入删除效率高,其他位置插删效率较低: list 双向链表,内存空间可不连续,不支持随机存取.插入和删除的效率很高: deque  双端队列,内存空间是多个连续的内存块,在一个映射结构中保存对这些块以及顺序的跟踪,可利用的内存更大,且内存大小是可以自动缩减的.支持随机存取,但是随机存取性能没有vector 好.首尾插入效率高,其他位置插删效率低: 使用注意…
转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能讲讲其用法: 1.sort入门: 使用sort需要包含algorithm头文件,完整代码如下 #include<iostream> #include<vector> #include<…