预留容量的两类方式:

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. 接下来将介绍C#如何设置子窗体在主窗体中居中显示,本文提供详细的操作步骤,需要的朋友可以参考下

    接下来将介绍C#如何设置子窗体在主窗体中居中显示,本文提供详细的操作步骤,需要的朋友可以参考下 其实表面上看是很简单的 开始吧,现在有两个窗体Form1主窗体,Form2子窗体 而且我相信大部分人都会 ...

  2. 计算 S=a+aa+aaa+aaaa+a.......a【转载】

    package java算法; import java.util.Scanner; /* * 计算 S=a+aa+aaa+aaaa+a.......a */ public class numadd { ...

  3. WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable(spark加载hadoop本地库的时候出现不能加载的情况要怎么解决呢?)

    原文地址: https://www.zhihu.com/question/23974067/answer/26267153 原文内容: 我64位机器,当时hadoop启动的时候出现这个问题是因为had ...

  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. 判断颜色信息-RGB2HSV

    前言 项目车号识别过程中,车体有三种颜色黑车黑底白字.红车红底白字.绿车黄底绿字,可以通过判断车体的颜色信息,从而判断二值化是否需要反转,主要是基于rgb2hsv函数进行不同颜色的阈值判断. MATL ...

  6. Unity3D游戏-愤怒的小鸟游戏源码和教程(二)

    Unity愤怒的小鸟游戏教程(二) 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) AngryEva游戏效果 ...

  7. AOP jdk动态代理

    一: jdk动态代理是Spring AOP默认的代理方法.要求 被代理类要实现接口,只有接口里的方法才能被代理,主要步骤是先创建接口,接口里创建要被代理的方法,然后定义一个实现类实现该接口,接着将被代 ...

  8. 各大OJ题目分类

    http://www.pythontip.com/acm/problemCategory

  9. 【HAOI2016】食物链

    HA真是弱…… 原题: 1.食物链[问题描述]如图所示为某生态系统的食物网示意图,据图回答第1小题. 1.数一数,在这个食物网中有几条食物链( )现在给你n个物种和m条能量流动关系,求其中的食物链条数 ...

  10. memsql 基本完全免费了

    一个很好的消息是memesql 从6.7 版本开始,对于用户来说已经可以免费使用了(ha 以及安全功能),只是目前有一个 限制是集群内存最大可以使用的是128G,但是一般来说已经够用. 参考资料 ht ...