zoukankan      html  css  js  c++  java
  • stl+数据结构

    Stl:

    Algorithm:
    1. min(a,b) a和b的类型要一样
    2. max(a,b) a和b的类型要一样
    3. swap(a,b) a和b的类型要一样
    4. sort(a,b)左闭右开,拍完序之后,使得数组从1到n从小到大排序。{自定义函数:sort(a,b,cmp)使得a到b从大到小排序}(定义cmp从大到小)。
    5. unique:去重。但是想要用这个函数,必须先排序。这个函数有返回值,比如在输出完四个不同的数后,它会返回z+5.也就是说 不同的数的个数=unique(z+1,z+n+1)-z-1.
    6. reverse:翻转:12345到54321.
    7. random_shuffle:打乱。
    8. next_ permutation:沿着全排列从上到下依次走。
    9. prev_permutation:沿着全排列从下到上依次走。
    10. map<int,int> m;(可以用map搞出无限大的数组)
    a) 第二个int代表数组里面的元素是什么类型的
    b) 第一个int说的是数组下标是什么类型的。
    c) 如果已经对map的n个位置赋了值,那么再进行操作,时间复杂度为lg n。
    d) map实现二维数组:
    i. map<int,map<int,int>> mm;
    11. C++实数会有误差,所以我们用这样的方法判断两个数是否相同。

    这里的例子是判断8位就足够了。
    12. Pair(二元组):
    a)
    数据结构
    1. 数组:查询很快,插入和删除很慢。
    2. 链表:1.插入和删除很快,查询很慢。
    3. 栈:从同一个口出和放。FILO:first in last out.
    a) 手写栈(现阶段)。
    b) <stack>栈头文件。
    i. stack<int> sta(sta可换成别的)
    1. sta.push,sta.pop,sta.top,sta.size(求多少个元素)。
    4. 队列:从不同的口出和放。FIFO:first in first out.
    a) Stl:<queue>头文件
    b) queue<int>
    i. que.push
    ii. que.pop
    iii. que.front
    iv. que.size

    5. 堆
    a) Push:放东西(大根堆/小根堆)
    i. Pop:扔最大的东西
    ii. Top:询问最大的元素是多少。
    iii. Pop:扔最小的东西
    iv. Top:访问最小的元素是多少
    b)
    i. Priority_queue:优先队列(堆)。
    1. C++中Priority实现的堆永远是大根堆。
    2. 求小根堆,就把输入的元素加负号,使得最大的数(即未加负号前最小的数)扔掉。

  • 相关阅读:
    探索c#之一致性Hash详解
    Redis系列(三)-Redis发布订阅及客户端编程
    Redis系列(二)-Hredis客户端设计及开源
    关于电脑操作一些高效的方法工具
    探索c#之递归APS和CPS
    探索C#之系列目录导航
    探索c#之不可变数据类型
    SOA相关资料整理分享
    探索c#之尾递归编译器优化
    探索c#之函数创建和闭包
  • 原文地址:https://www.cnblogs.com/liumengliang/p/11189970.html
Copyright © 2011-2022 走看看