zoukankan      html  css  js  c++  java
  • vector不定长数组

    看书的时候第n次见到vector了,一时兴起:既然这么好用就掌握它吧。

    看书看别人的博客发现原理并不复杂。并且!居然支持任意位置插入!!一直以来无限头疼的问题,唯有二叉查找树--平衡树能解决的艰难的问题居然被STL封装好了!

    立刻把之前树状数组折腾了好久的题拿出来用vector做。

    五分钟搞定!!!

    一. 向量

      向量是一种对象实体,能够容纳许多类型相同的元素,因此被称为容器。vector属于STL(标准模板库),广义上可以看成是数组的增强版。

    二. 基本操作

      #include<vector>  //头文件

      vector<int> a ;    //声明一个int型向量a

      vector<int> a(10) ;    //声明一个初始大小为10的向量

      vector<int> a(10, 1) ;  //声明一个初始大小为10且初始值都为1的向量

      vector<int> b(a) ;    //声明并用向量a初始化向量b

      vector<int> b(a.begin(), a.begin()+3) ;    //将a向量中从第0个到第2个(共3个)作为向量b的初始值

     a.size()      //获取向量中的元素个数

     a.empty()    //判断向量是否为空

     a.clear()   //清空向量中的元素

    a = b ;       //将b向量复制到a向量中

    a == b ;    //a向量与b向量比较, 相等则返回1

    a.insert(a.begin(), 1000);      //将1000插入到向量a的起始位置前

      a.insert(a.begin(), 3, 1000) ;   //将1000分别插入到向量元素位置的0-2处(共3个元素)

    vector<int> a(5, 1) ;

      vector<int> b(10) ;

      b.insert(b.begin(), a.begin(), a.end()) ;     //将a.begin(), a.end()之间的全部元素插入到b.begin()前

    b.erase(b.begin()) ;       //将起始位置的元素删除

      b.erase(b.begin(), b.begin()+3) ;      //将(b.begin(), b.begin()+3)之间的元素删除

      b.swap(a) ;      //a向量与b向量进行交换

  • 相关阅读:
    「两千年中公历转换」数据库介绍
    [转]Web中使用Word控件。(DSOFramer )
    解决DRIVE_IRQL_NOT_LESS_OR_EQUAL的方法
    Html Img的几个属性_存在个问题
    不错的开源C#博客_BlogEngine.net
    [转]引用指定的namespace 解决命名空间冲突的错误
    [原]不太完善的图像合并程序VS2005CSharp_有目录监控_TIF_JPG输出
    [转]JS小游戏_9格的棋
    JS小游戏_能坚持几秒
    [转]前台JS限制上传图片质量大小和尺寸!
  • 原文地址:https://www.cnblogs.com/hnoi/p/10999629.html
Copyright © 2011-2022 走看看