zoukankan      html  css  js  c++  java
  • vector 用法简介

    vector(向量)类

    声明

    #include <vector>
    vector<int> v;//相当于长度动态变化的一维(int)数组
    vector<int> v(10);//相当于长度现在为10但仍然动态变化的一维(int)数组
    vector<int> v[Max];//相当于长度动态变化的二维数组
    struct node{
        int v,w;
    };
    vector<node> v;//相当于长度动态变化的自定义数组
    vector<int>::iterator it;//一个保存int的vector的迭代器
    //迭代器就像STL容器的指针,并可以用"*"(星号)操作解除引用
    

    特点

    • 支持随机访问
    • 节省空间

    用法

    函数 用途 时间复杂度
    size() 返回 vector 的实际长度,即元素个数 (Theta(1))
    empty() 返回 bool 型 判断 vector 是否为空 (Theta(1))
    push_back(x) 把元素 x 插入vector 的尾部 (Theta(1))
    pop_back() 删除 vector 最后一个元素 (Theta(1))
    begin() 返回第一个元素迭代器 若 vector 非空 *a.begin()等效于a[0] (Theta(1))
    end() 返回最后一个元素迭代器 若 vector 非空 *a.end()等效于a[a.size()] 此时二者越界访问 (Theta(1))
    front() 返回第一个元素 等效于a[0]和*a.begin() (Theta(1))
    back() 返回最后一个元素 等效于*--a.end()和a[a.size()-1] (Theta(1))
    clear() 清空所有元素 (Theta(n))

    用途

    • 用 vector 代替邻接表存图
    const int N=100010;
    vector<int> v[N],edge[N];
    
    void add(int x,int y,int z) {
        v[x].push_back(y);
        edge[x].push)back(z);
    }
    
    for (int i=0; i<v[x}.size(); i++) {
        int y=v[x][i],z=edge[x][i];
    }
    
    
  • 相关阅读:
    后台服务器经典面试题
    Java英语面试题(核心知识篇)
    Java常用英语汇总(面试必备)
    字符压缩编码
    外排序
    基数排序
    Windows Server 2008 R2 部署服务
    LINUX中常用操作命令
    我的学习笔记_Windows_HOOK编程 2009-12-03 11:19
    CSDN-Code平台使用过程中的5点经验教训
  • 原文地址:https://www.cnblogs.com/vasairg/p/13397431.html
Copyright © 2011-2022 走看看