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];
    }

 

posted @ 2019-07-20 12:52  阿斯水生产线  阅读(256)  评论(1编辑  收藏  举报