STL

作者: Supreme_DJK | 来源:发表于2019-04-05 09:40 被阅读0次

    hash_map、hash_set

    • 底层实现是hash_table(vector + linklist)

    • SGI hashtable使用开链法解决hash冲突、SGI hashtable无法处理处理除以下几个类型外的元素:

      • char、int、long
      • 欲处理除以上类型的元素,像是直接处理string会出错。需要用户自己自定义hash funciton
    • 现在已经不建议使用,转而使用unordered_map、unordered_set

    仿函数

    • 一个“行为类似函数”的对象,其类别定义(可以定义函数中使用的变量、即成员变量)中必须自定义(或者重载)funciton call运算子(operator()),拥有了这样的运算子后,我们就可以在仿函数对象后面加上一对小括号,以此调用仿函数所定义的operator()

    迭代器

    在STL中,迭代器主要分为5类。各自是:输入迭代器、输出迭代器、前向迭代器、双向迭代器和随机訪问迭代器。

        输入迭代器:仅仅读。支持++、==、!=;
    
        输出迭代器:仅仅写,支持++;
    
        前向迭代器:读写,支持++、==、!=。
    
        双向迭代器:读写,支持++、--。C++的全部标准库容器都至少在双向迭代器的层次上。;
    
        随机訪问迭代器:读写,支持++、--、[n]、-n、<、<=、>、>=。

    相关文章

      网友评论

          本文标题:STL

          本文链接:https://www.haomeiwen.com/subject/dehqiqtx.html