STL

ref. 《STL 源碼剖析》
STL 6大組件

  • 容器 containers 一種class template 各種數據結構
    序列式 vector list deque stack queue heap priority_queue slist
    關聯式 tree RB-tree set map multitest multimap hashtable hash_set hash_map hash_multiset hash_multimap
  • 算法 algorithms 一種function template sort search copy erase…
    容器與算法之間膠合劑,所謂 ”泛型指針”
    五種類型以及衍生變化
  • 迭代器 iterators 所有STL 容器都有自己專屬的迭代器。原生指針也是一種迭代器。
  • 仿函數 functors 一種重載了operator()的class 或者 class template 一般函數指針可視爲狹義仿函數
  • 配接器 adapters 一種修飾容器or仿函數 or 迭代器接口的東西
    STL提供的queue stack 是一種容器適配器
  • 配置器 allocators 負責空間配置管理 實現了動態空間配置管理釋放的class template

  • hash hash_map unordered_map 區別
    http://blog.csdn.net/qq51931373/article/details/44196859

  • 線程安全的 是共享內存 互斥訪問 vevtor
  • 非。。。。。。。。。。不互斥訪問 arraylist hash_map
    http://bbs.csdn.net/topics/300263474
    簡單的來講,在多線程情況下 vector.add(e),這樣寫就好了,如果你用ArrayList.add(e),那麼你就得這樣
    synchronized(ArrayList)
    {
    ArrayList.add(e)
    }
    HashMap線程不安全(hash碰撞與擴容導致)
發佈了33 篇原創文章 · 獲贊 17 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章