预留容量的两类方式:

1、不调用默认的构造函数

        vector<int> v;
v.push_back(111);
v.reserve(20);
std::copy(v.begin(), v.end(), ostream_iterator<int>(cout," "));//只能打印出111;

2、调用默认构造函数

        vector<int> v(20);
std::copy(v.begin(), v.end(), ostream_iterator<int>(cout," "));//打印出20个零
         vector<int> v;
     v.resize(20);
     std::copy(v.begin(), v.end(), ostream_iterator<int>(cout," "));//打印出20个零

缩小vector的容量:

         template<class T>
void shrinkCapacity(vector<T>& v)
{
vector<T> temp(v); //copy elements into a new vector
v.swap(temp); //swap internal vector data //swap具有常数时间复杂度,通过交换一些指针完成。
}
        vector<int> v(10);
v.reserve(100);
cout <<"size:"<< v.size()<<"capacity:" << v.capacity() << endl; //10 100 shrinkCapacity(v);
cout << "size:" << v.size() << "capacity:" << v.capacity() << endl; //10 10

将vector当作一般array使用:

只要你需要一个类型为T的数组,就可以采用vector<T>。

        vector<char> c;
c.resize(20); //初始化为‘\0’
strcpy(&c[0], "Hello world");
cout << &c[0] << endl;

循环语句内删除值为x的元素:

        vector<int> ve;
ve.push_back(1);
ve.push_back(2);
ve.push_back(2);
ve.push_back(3);
ve.push_back(4);
ve.push_back(4);
vector<int>::iterator iter;
for (iter = ve.begin(); iter != ve.end();)
{
if (*iter == 4)
iter = ve.erase(iter);
else
++iter; }
cout << "*************" << endl;
copy(ve.begin(), ve.end(), ostream_iterator<int>(cout, " "));

erase返回的是下个元素的位置,内存移动后即是删除元素的位置。

insert返回的是插入元素的位置,即原来当前位置的元素及以后元素全部往后移动,当前位置插入新元素。

最简便删除某个值为x的元素:

ve.erase(remove(ve.begin(), ve.end(), x),ve.end());



Vector的小知识点的更多相关文章

  1. 刚接触Linux,菜鸟必备的小知识点(一)

    身为一个将要大四的学生,而且还是学计算机的没有接触过linux简直是羞愧难当.这个假期做了一个软件测试员,必须要熟悉linux的操作,所以对于我这个菜鸟我也就说几点比较重要的小知识点吧. 第一.cd指 ...

  2. Java学习过程中的总结的小知识点(长期更新)

    Java学习过程中的总结的小知识点 (主要是自己不会的知识和容易搞错的东西) 计算某个程序运行的时间 long stime=System.currentTimeMillis(); copy3(file ...

  3. 【转】HTML5的小知识点小集合

    html5的小知识点小集合 html5知识   1.  Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于<h ...

  4. AngularJS的小知识点

    小知识点:$scope和$rootScope (1)每次使用ngController指令,都会调用控制器的创建函数,创建出一个控制器对象. (2)每次创建一个控制器对象,AngularJS都会创建一个 ...

  5. js中关于value的一个小知识点(value既是属性也是变量)

    今天在学习input的value值时,发现这么一个小知识点,以前理解不太透彻. [1]以下这种情况是常见情况,会弹出“测试内容” <input type="button" v ...

  6. html5的小知识点小集合

      html5的小知识点小集合 html5知识   1.  Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于< ...

  7. [BS] 小知识点总结-05

    [BS] 小知识点总结-05 1. 不论UIWindow的rootViewController是navC.tabBarC还是VC,也不管modalVC和rootVC中间隔着多少个VC,但是modal出 ...

  8. 一个关于echo的小知识点

    一个关于echo的小知识点     echo一个布尔值时,如果是true,输出1,而如果是false,将什么都不输出! 网上搜的一个解释: 对于数字类型来说,false 确实 是 0, 而对strin ...

  9. easyui中的combobox小知识点~~

    一直使用的easyui中,一些不为人知的小知识点,与君共勉: 1.combobox设置高度:使用panelHeight属性: 2.combobox本身自带“自动补全”功能,但是在浏览器中是有限制的,在 ...

随机推荐

  1. Maven私服Nexus详解

    maven的仓库只有两大类:1.本地仓库 2.远程仓库,在远程仓库中又分成了3种:2.1 中央仓库 2.2 私服 2.3 其它公共库. 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理 ...

  2. Gradle 下载不了

    可自行下载对应的 gradle-x.x-all.zip 放在下列目录 C:\Users\penno\.gradle\wrapper\dists\gradle-4.4-all\9br9xq1tocpiv ...

  3. torch7 安装 并安装 hdf5模块 torch模块 nn模块 (系统平台为 ubuntu18.04 版本)

    今年的CCF A会又要开始投稿了,实验室的师弟还在玩命的加实验,虽然我属于特殊情况是该从靠边站被老板扶正但是实验室的事情我也尽力的去帮助大家,所以师弟在做实验的时候遇到了问题也会来问问我,这次遇到的一 ...

  4. 【linux基础】core dump debug

    1.check core dump; ulimit -c or ulimit -a nvidia@tegra-ubuntu:~$ ulimit -a core data seg size (kbyte ...

  5. STM32中断定时,控制LED灯

    #include "led.h" void TIM3_Int_Init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBas ...

  6. MP算法、OMP算法及其在人脸识别的应用

    主要内容: 1.MP算法 2.OMP算法 3.OMP算法的matlab实现 4.OMP在压缩感知和人脸识别的应用 一.MP(Matching Pursuits)与OMP(Orthogonal Matc ...

  7. IIS7中Ajax.AjaxMethod无效的原因及解决方法

    使用Ajax.AjaxMethod方法在asp.net的服务器下一切正常,用iis的时候,js中总是cs类找不到,具体的解决方法如下,遇到类似情况的朋友可以参考下 最近做用Ajax.AjaxMetho ...

  8. ThinkPHP3.2.3整合smarty模板(三)

    在smarty模板中使用thinkphp框架的U方法时要主要的问题: 1.不能直接使用{:U('Index/index')}: 2.正确的使用方法为:<!--{U("Login/log ...

  9. 用zcat查看压缩日志中百度抓取的量

    比如查看124.251.44.85这一台服务器的07-13,07-14,07-15的日志中百度抓取http://www.baidu.com/search/spider.html 的量 wc命令参考博客 ...

  10. div+css 怎么让一个小div在另一个大div里面 垂直居中

    div+css 怎么让一个小div在另一个大div里面 垂直居中 方法1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 .parent {           width:800 ...