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

  • 相关阅读:
    MXCMS List标签说明
    c# 测量运行时间的方法
    简单的定时任务
    jQuery实现的简单文字提示效果模拟title
    ECSHOP设置默认配送方式和默认支付方式
    asp 里sql防止注入的方法
    asp.net上传图片并生成水印与缩略图的代码
    定时备份并清除系统日志的shell代码
    sql server 2005 万能分页存储过程
    01.部署NopCommerce时遇到的问题
  • 原文地址:https://www.cnblogs.com/hnoi/p/10999629.html
Copyright © 2011-2022 走看看