zoukankan      html  css  js  c++  java
  • C++ STL 简单记录

    1,STL提供三种类型的组件:容器、迭代器、算法。

    容器:

    顺序容器(vector、list、deque、string等)是一系列元素的有序集合;

    关联容器(set、multiset、map、multimap)包含查找元素的键值。

    迭代器:作用是遍历容器。

        for (vector<int>::iterator it = v.begin(); it != v.end(); it++)
        {
            cout << *it << " ";
        }
        //迭代器是依附于容器的

    算法:排序算法、不可变序算法、变序算法、数值算法。

        #include <numeric>
        #include <algorithm>
        vector<int> v;
    
        sort(v.begin(), v.end());        //排序算法
        reverse(v.begin(), v.end());        //变序算法,反转
        accumulate(v.begin(), v.end());        //数值算法,计算和
        //可以看到算法不是容器的方法,而是独立于容器的

    2,set集合红黑树的平衡二叉检索树,但是元素没有重复,插入重复的插不成功;

    multiset允许插入重复的数字。

    3,map映照容器,键值与数据构成,红黑树实现的,插入元素的键值不允许重复,比较函数只对元素的键值比较;

    multimap允许插入重复键值的元素。

    4,deque双端队列容器,与vector类似采用线性表顺序存储结构,当考虑到容器元素的内存分配策略和操作性能是,deque相对于vector更有优势。从头部和中间插入元素只将原来的元素覆盖,不会增加新元素。

    5,list结构实现了双向链表的数据结构。对迭代器只能++、--,不能+n、-n。

    6,queue队列是先进先出的线性存储表,插入只能在队尾,删除只能在队首。

    7,priority_queue优先队列,只能在队首删除、队尾插入。

  • 相关阅读:
    直接选择排序(C++模版技术实现)
    求素数
    快速排序(C++模版技术实现)
    堆排序(C++模版技术实现)
    简单链式二叉树(C++模版技术实现)
    归并排序(C++模版技术实现)
    求斐波那契数列的两种解法
    C++中改变setw(n)的对齐方式
    C中的64位整型
    Windows版GCC之TDMGCC 4.5.2
  • 原文地址:https://www.cnblogs.com/jiayith/p/4338819.html
Copyright © 2011-2022 走看看