zoukankan      html  css  js  c++  java
  • STL----vector

               vector的一些常用操作

     

    注意遍历的时候不能这么写

    for(int i=0;i<=v[x].size()-1;++i)

    只能这么写

     for(int i=0;i<v[x].size();++i)

    1. 定义  vector <int> vec或者vector <int> vec[50]; 
    2. 支持随机访问,可以像[i]一样取值,a但是不能在任意位置o(1)插入。只能在尾部增删。
    3. size返回长度n,empty返回bool类型表明vec是否为空。
    4. clear,清空
    5. begin()返回指向a第一个元素的迭代器,若a非空,*a.begin 和a[0]作用相同。
    6. end()返回指向a尾部。*a.end()与a[n]都是越界访问。
    7. 遍历vector 
      for(int i = 0;i < a.size();++i) 
              cout<<a[i]<<endl;
      for(int i = 0;i < a[k].size();++i) cout<<a[k][i]<<endl;
      for(vector<int>::iterator it = a.begin(); it != a.end() ; ++it) cout<<*it<<endl; 

      6.front和back分别返回第一个和最后一个元素

      

         7.插入删除。

      8.用vector代替灵界表保存有向图

    vector<int> ver[1000],edge[1000];
    void add(int x,int y,int z)
    {
        ver[x].push_back(y);
        edge[x].push_back(z);
    }
    
        //遍历由x出发的边
        for(int i=0;i<ver[x].size();++i)
        {
            // 有向边(x,y,z)
            int y = ver[x][i],z = edge[x][i];
        }
  • 相关阅读:
    Bzoj4627 [BeiJing2016]回转寿司
    Bzoj1901 Zju2112 Dynamic Rankings
    COGS728. [网络流24题] 最小路径覆盖问题
    Bzoj4568 [Scoi2016]幸运数字
    Bzoj2728 [HNOI2012]与非
    HDU4609 3-idiots
    Bzoj2194 快速傅立叶之二
    Bzoj2179 FFT快速傅立叶
    模拟52 题解
    模拟51 题解
  • 原文地址:https://www.cnblogs.com/jrfr/p/11217408.html
Copyright © 2011-2022 走看看