大家好,我是quicklysleep,欢迎大家光临我的博客,算法学习笔记系列持续更新中~
文章目录
一、前言
vector(变长数组),倍增的思想,支持比较运算(按字典序)
二、vector的定义
    vector <int> a; 定义:一个vector数组a
    vector <int> a(10); 定义:一个长度为10的vector数组a
    vector <int> a(10,3); 定义:一个长度为10的vector数组a,并且所有元素都为3
 
三、vector的常用函数
   size(); 返回元素个数
    empty(); 判断a是否为空,空则返回true,非空则返回false
    clear(); 清空
    front(); 返回vector的第一个数
    back(); 返回vector的最后一个数
    push_back(); 向vector的最后插入一个数
    pop_back(); 把vector的最后一个数删掉
    begin(); vector的第0个数
    end(); vector的最后一个的数的后面一个数
  倍增的思想:
    系统为某一程序分配空间是,所需时间,与空间大小无关,与申请次数有关
 
   结合算法erase()  reverse()
   
   a.erase(p)//从a中删除迭代器p指定的元素,p必须指向c中的一个真实元素,不能是最后一个元素end()
   
   a.erase(b,e)//从a中删除迭代器对b和e所表示的范围中的元素,返回e
   vector<int> a={1,2,3,4,5};
   
   reverse(a.begin(),a.end());//a的值为5,4,3,2,1  倒置
 
四、vector的遍历方法
    假设有个vector <int> a;
    第一种:
      for(int i = 0;i < a .size();i ++) 
         cout<<a[i]<<" ";
    第二种:
      for(vector <int>::iterator i = a. begin();i != a. end();i ++)
        cout<<*i<<" "; vector <int>::iterator可以写为auto
    第三种:
      for(auto x : a) cout<<x<<" ";//C++11的新语法
 









