五一  DAY 6

 五一  DAY 6
    





            
五一    考试二

TypeName   类型名

VariableName  变量名

 


 

 

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 

Part 1 数据结构

 

五一  DAY 6
    





            
五一    考试二

函数库:# include < utility >

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

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

(类似于结构体)

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 

 

 五一  DAY 6
    





            
五一    考试二

函数库:#include < string >

定义一个字符串

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二     

    a = qing bei                 b = xue tang

    a+b = qing bei zao tang 

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

   

 

 

 五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

                                                                           //超过内存限制

 

 所以就用到了vector

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 

 

Vector 原理:  倍长

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

 

演示过程

读入过程:

五一  DAY 6
    





            
五一    考试二

取数过程:

五一  DAY 6
    





            
五一    考试二

 

 

 五一  DAY 6
    





            
五一    考试二

 

 

 五一  DAY 6
    





            
五一    考试二

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

 

 五一  DAY 6
    





            
五一    考试二

 

        在指针上加*,得到值

五一  DAY 6
    





            
五一    考试二

       

        支持自增运算

 五一  DAY 6
    





            
五一    考试二

 

遍历  vector :

 五一  DAY 6
    





            
五一    考试二

 

 

 五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

    STL 要求 set 必须有序

 

 五一  DAY 6
    





            
五一    考试二

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

五一  DAY 6
    





            
五一    考试二

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

      ( 一种很麻烦的平衡树

           平衡的树结构

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

           常见有伸展树

          五一  DAY 6
    





            
五一    考试二

       )

 五一  DAY 6
    





            
五一    考试二

返回的大部分是迭代器

 

 set具有鲁棒性

      内存不连续

五一  DAY 6
    





            
五一    考试二

 

 

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

双向迭代器(建议百度)

 

常见操作:

五一  DAY 6
    





            
五一    考试二

 

 

 五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 

五一  DAY 6
    





            
五一    考试二

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

 multiset  可以   1 2 2 3 3 4

 五一  DAY 6
    





            
五一    考试二

比如:1 2 2 3 3 4 

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

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

 

 

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

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

然鹅  map可以实现

 

 五一  DAY 6
    





            
五一    考试二

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

 五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二五一  DAY 6
    





            
五一    考试二

 

五一  DAY 6
    





            
五一    考试二

 

 

 

 五一  DAY 6
    





            
五一    考试二 

    栈    [ FILO ] first in last out

五一  DAY 6
    





            
五一    考试二

 五一  DAY 6
    





            
五一    考试二

 

 

 五一  DAY 6
    





            
五一    考试二 

    队列   [ FIFO ] first in first out

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 

 

 

 五一  DAY 6
    





            
五一    考试二 

   优先队列    本质是大根堆

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 

 五一  DAY 6
    





            
五一    考试二

 

要做小根堆怎么办??

 五一  DAY 6
    





            
五一    考试二

 

 五一  DAY 6
    





            
五一    考试二

注意:

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

2.五一  DAY 6
    





            
五一    考试二

     第一个 int 是priority_queue的类型

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

     第三个 cmp 是比较函数

3.Priority Queue  重载 运算符 

   Cmp 重载()运算符

   Map  重载[ ]

4.五一  DAY 6
    





            
五一    考试二等价于五一  DAY 6
    





            
五一    考试二

5.优先队列比 set 慢

 

 

 

 

 

 Part 2    Algorithm(函数)

   

五一  DAY 6
    





            
五一    考试二      左闭右开

五一  DAY 6
    





            
五一    考试二

 五一  DAY 6
    





            
五一    考试二

 

 

 五一  DAY 6
    





            
五一    考试二

   按照输入的顺序倒序输出

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 

 

Unique

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

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 

 

 

 

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 五一  DAY 6
    





            
五一    考试二

 

找到a的下一个排列

五一  DAY 6
    





            
五一    考试二

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

 

 五一  DAY 6
    





            
五一    考试二

所以可以实现全排列QVQ

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

 

Fill函数可以赋值任何数

可以作为memset的替换

但是没有memset快

 

 

 

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 

 

 

五一  DAY 6
    





            
五一    考试二

    O(n)

五一  DAY 6
    





            
五一    考试二

 

 五一  DAY 6
    





            
五一    考试二

   左闭右开

   五一  DAY 6
    





            
五一    考试二

  五一  DAY 6
    





            
五一    考试二

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

 

 

 

 五一  DAY 6
    





            
五一    考试二

  随机重排

五一  DAY 6
    





            
五一    考试二

 

 五一  DAY 6
    





            
五一    考试二随机种子

五一  DAY 6
    





            
五一    考试二

实现得到随机排列

 

 


 

下午考试:

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

 


 

扩充知识:

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 

 五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

析构:释放内存

 

构造函数:

五一  DAY 6
    





            
五一    考试二

类名

操作

 五一  DAY 6
    





            
五一    考试二赋值构造函数

 

五一  DAY 6
    





            
五一    考试二

 

五一  DAY 6
    





            
五一    考试二

 

 五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

五一  DAY 6
    





            
五一    考试二

 

 五一  DAY 6
    





            
五一    考试二五一  DAY 6
    





            
五一    考试二

 

 


 

IN THE END

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

http://bytew.net/OIer/

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

 

相关文章:

  • 2022-12-23
  • 2021-08-20
  • 2022-01-01
  • 2021-08-09
  • 2022-12-23
  • 2021-08-06
  • 2021-12-28
  • 2022-02-25
猜你喜欢
  • 2021-10-24
  • 2021-07-11
  • 2022-01-02
  • 2021-09-09
  • 2021-10-07
  • 2022-02-02
  • 2022-01-27
相关资源
相似解决方案