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向量进行交换

  • 相关阅读:
    Linux负载均衡--LVS(IPVS)主要算法实现分析
    使用alarm控制阻塞connect()超时的示例
    使用select控制非阻塞connect()超时的示例
    再出发
    nulls_hlist原理 和 tcp连接查找
    linux支持大容量硬盘
    Nmap扫描原理(下)
    linux常用命令
    Linux下面自动清理超过指定大小的文件
    Memcached介绍
  • 原文地址:https://www.cnblogs.com/hnoi/p/10999629.html
Copyright © 2011-2022 走看看