• STL


    STL

    使用模板的程序设计法

    将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,都不必重新实现数据结构,重新编写算法

    标准模板库(STL)就是一些常用的数据结构和算法的模板的集合

    容纳:可容纳各种数据类型的通用数据结构,是类模板

    迭代器:可用于依次存取容器内元素

    和指针类似,不同的是指针要定义

    对数据结构进行封装,防止对其本身产生大的损坏

    容器:

    1.顺序容器

    容器并非排序的,元素的插入位置同元素的值无关

    vector,deque,list

    vector动态数组,元素在内存连续存放,存取任何元素都能在常数时间完成

    deque双向队列,元素在内存连续存放,存取任何元素都能在常数时间完成(次于vector)

    list链表,不连续存放,存放常数时间

    2.关联容器

    元素是排序的,插入任何元素都按照相应的排序规则来确定位置,通常用红黑树实现

    set(无重复元素),multiset(有),map,multimap

    map<a,b>建立a->b的映射

    map[a]=b

    根据first值对元素从小到大排序,并根据first检索元素

    image-20200203082228036

    顺序容器和关联容器都有的成员函数

    begin

    end

    rbegin

    rend

    erase

    clear

    image-20200203082411094

    顺序容器中常用的成员函数

    front

    back

    push_back

    pop_back

    erase

    迭代器

    用于指向顺序容器和关联容器中的元素

    迭代器用法和指针类似

    定义:

    容器类名::iterator 变量名

    迭代器++操作可以执行++操作,指向下一个元素

    3.容器适配器

    stack,queue,priority_queue

    算法简介:

    函数模板,大多数在定义

    算法可以处理容器和数组

    1.不变序列算法

    2.变值算法

    3.删除算法

    4.变序算法

    5.排序算法

    6.有序区间算法

    7.数值算法

    next_permutation

    for(int i = 1; i <= n; i ++) a[i] = i;
    do
    {
        for(int i = 1; i <= n; i ++)
        {
            printf("%d ", a[i]);
        }
    }while(next_permutation(a + 1, a + 1 + n))
    

    random_shuffle

  • 相关阅读:
    【复习笔记】数据结构-外排序
    【复习笔记】数据结构-内排序
    python os
    pyinstaller problem
    python tk Lable
    机器学习
    python pickle and json
    pycharm 快捷键
    day10_procession作业
    python fibonacci recursion review
  • 原文地址:https://www.cnblogs.com/lcezych/p/12860529.html
Copyright © 2020-2023  润新知