zoukankan      html  css  js  c++  java
  • 五一 DAY 6

    五一  DAY 6

     

    TypeName   类型名

    VariableName  变量名


    Part 1 数据结构

    函数库:# include < utility >

    Pair 定义一个变量,它有两个元素 :pair.first    pair.scecond,

                                     这两个元素的类型可以不同

    (类似于结构体)

     

    函数库:#include < string >

    定义一个字符串

         

        a = qing bei                 b = xue tang

        a+b = qing bei zao tang 

       

     

                                                                               //超过内存限制

     所以就用到了vector

    Vector 原理:  倍长

    Vector的内存长度是2n   ,内存是连续的

    演示过程

    读入过程:

    取数过程:

     

     

      迭代器返回的是(下标),不是对应值

     

            在指针上加*,得到值

           

            支持自增运算

     

    遍历  vector :

     

     

        STL 要求 set 必须有序

     

       Set类型可以定义为任何可以排序的类型

      Set 的底层使用红黑树这个数据结构来维护集合。

          ( 一种很麻烦的平衡树

               平衡的树结构

               每个节点左右子树节点数差不多

               常见有红黑树AVL替罪羊树Treap伸展树

              

           )

     

    返回的大部分是迭代器

     set具有鲁棒性

          内存不连续

    双向迭代器(建议百度)

    常见操作:

     

       set 不会出现  1 2 2 3 3 4    只能是1 2 3 4

     multiset  可以   1 2 2 3 3 4

     

    比如:1 2 2 3 3 4 

    我们删除 2    就变为: 1 3 3 4

    想只删一个数字,就删去它他的迭代器

    一维数组一定不会支持这种操作,一维数组的下标只能是数字

    然鹅  map可以实现

     

       把第一维度作为下标,值是第二维 ,第一维度必须可排序

     

      

        栈    [ FILO ] first in last out

     

      

        队列   [ FIFO ] first in first out

      

       优先队列    本质是大根堆

     

    要做小根堆怎么办??

     

     

    注意:

    1.大于比较 小根堆   (小于比较  大根堆)

    2.

         第一个 int 是priority_queue的类型

         第二个 vector<int> 是存储数据的结构 一般用vector

         第三个 cmp 是比较函数

    3.Priority Queue  重载 运算符 

       Cmp 重载()运算符

       Map  重载[ ]

    4.等价于

    5.优先队列比 set 慢

     Part 2    Algorithm(函数)

       

          左闭右开

     

     

       按照输入的顺序倒序输出

    Unique

     对已经拍好顺序的数组去重

     

    找到a的下一个排列

    (是否还能找到下一个排列)

     

    所以可以实现全排列QVQ

    比较次数不会超过 。。han ning ju li

    Fill函数可以赋值任何数

    可以作为memset的替换

    但是没有memset快

        O(n)

     

       左闭右开

       

      

        4 放到该放位置,比它小的在前,比它大的在后,但不保证顺序

     

      随机重排

     随机种子

    实现得到随机排列


    下午考试:

    五一    考试二

     暴力出奇迹!!!rank 4!!!


    扩充知识:

     

    析构:释放内存

    构造函数:

    类名

    操作

     赋值构造函数

     

     


    IN THE END

    咳咳咳你看这个网站它又大又圆

    http://bytew.net/OIer/

    http://www.cplusplus.com/reference/vector/vector/?kw=vector

  • 相关阅读:
    repeater 结合checkbox批量删除
    (转)用JS判断ckeditor3.6版本编辑器内容为空的方法
    把数据库中的null作为条件查询应该用is
    注意 reader["yjID"] == DBNull.Value而不是null
    (转)第三方登录(QQ登录)开发流程详解
    (转)TortoiseSVN使用简介
    dropdownlist 二级联动
    关于服务器防火墙和discuz论坛的问题
    (转)Discuz!NT图文安装教程
    maven 基础
  • 原文地址:https://www.cnblogs.com/xiaoyezi-wink/p/10804676.html
Copyright © 2011-2022 走看看