zoukankan      html  css  js  c++  java
  • STL向量(vector)

    1.接口与实现

    1.1

    抽象数据类型:一组数据模型上定义的一组操作    数据类型是(char、int等)

    数据结构:基于特定语言的,实现ADT的一整套算法。

    1.2

    向量:向量是数组的抽象与泛化,由一组元素按线性次序封装而成。

    特点:1.各元素与(0,n)内的秩一一对以应

       2.元素的类型不限于基本类型

       3.操作、管理更加简洁、统一与安全

       4.可更为便捷的参与复杂数据结构的定制与实现

    1.3

    向量的操作

    insert(0,9):在0的位置插入9

    put(1,2)修改1位置上的元素为2

    get(2)获取2上的元素

    remove(2)移除位置2上的元素并返回

    size()向量里面元素的个数

    disordered()判断向量里面无序的数据对

    find(5)找有没有5的元素 找到返回其下标 未找到则返回-1

    sort()对里面的元素进行排序

    search(9)查找向量里面是否有9找到则返回下标,未找到则返回不超过9的最大的那个元素的下表(顺序的向量)

    uniquify()剔除掉向量里面重复的元素

    2.可扩充向量

    2.1 静态空间管理

    开辟内部数组_elem[]并使用一段连续的物理空间

    缺点:

    会产生上溢合下溢

    2.2 动态空间管理

    在即将发生上溢时适当的扩大数组的容量

    2.3 扩容的策咯

    容量递增策略(2 4 6 8 10 12)累计增容费时间(O(n2))  分摊增容时间(O(n))

    加倍试策略(2 4 8 16)累计增容费时间(O(n))  分摊增容时间(O(1))

    2.4 分摊复杂度

    平均复杂度:根据数据结构各种操作出现的概率分布,将对应的成本加权平均

    分摊谈复杂度:对数据结构连续的实施足够多次操作,所需总体成本分摊至单次操作

     

  • 相关阅读:
    c++标准库容器【转】
    C++命名空间的解释 【转】
    [转载]定义、公理、定理、推论、命题和引理的区别
    待读论文
    矩阵分解 Matrix Factorization (RegularSVD) 实验总结
    Predicting the Next Location: A Recurrent Model with Spatial and Temporal Contexts AAAI2016
    Discovering Urban Functional Zones Using Latent Activity Trajectories TKDE 2015
    numpy
    python 编程 规范
    深度学习
  • 原文地址:https://www.cnblogs.com/zhangfuxiao/p/9261578.html
Copyright © 2011-2022 走看看