Boolan微专业-STL与泛型编程(Week01)

2018-02-12  本文已影响0人  GoMomi

STL与泛型编程

主要内容:

介绍了 STL 的体系结构,六大部件和主要的容器。并利用测试程序介绍了容器的使用方法。

目标

参考网站

推荐书籍

使用一个东西,却不明白它的道理,不高明。--林语堂


一、STL 体系结构

1. 概述

2. 容器-结构与分类

3. 容器-使用示例

  1. array
    • array.size(), array.front(), array.back(), array.data() (返回array首元素的地址
  2. vector
    • capacity() 容量每次扩展是上次的二倍, size(), data(), front(), back(), push_back()
    • push_back(),内存不够时会抛出异常 std::bad_alloc, 需要 abort() 退出程序。
  3. list
    • max_size(), list.sort()
    • list自己提供了sort(),用容器自己提供sort比用::sort()要好,效率更高。
  4. forward_list
    • 本身也有sort(), 没有size() 和 back().
  5. slist 单向链表,是非标准库中的,gnc中的。
    • include<ext\slist>
  6. deque
    • max_size()
    • 排序只能用::sort().
    • 双向队列,分段连续(由一个个段组成,每段是连续的内存空间。用一个map存放每个段的指针)
  7. stack & queue是
    • 技术上属于容器适配器,是利用deque实现的。
    • stack先进后出。queue先进先出。push(), pop().
  8. set/multiset
    • insert(), size(), max_size().
    • 容器自己提供 find()
  9. map/multimap
    • insert(), find()
    • map可以用[]赋值,multimap不能使用[].
  10. unordered_set / unordered_multiset
    • insert(),size(),max_size(),bucket_count()(篮子一定比元素要多,因为有些篮子可能是空的)
    • bucket_size(i)(第i个篮子中元素的数量)当元素数量和篮子数量一致时,会分配原有的篮子数量的二倍的空间,之后重新分配元素的放置位置。
    • load_factor(), max_load_factor(), max_bucket_count()。
    • 容器自己提供 find()
  11. unordered_map / unordered_multimap
  12. hash_set, hash_map,hash_multiset,hash_multimap
    • unordered的旧版本。
上一篇 下一篇

猜你喜欢

热点阅读