標準模板庫(Standard Template Library )最初是由惠普公司提出來的,經過多年努力,C++標準委員會最終在1994年將STL納入標準庫中。STL是通過C++語言進行實現的,並作爲一個泛型化的數據結構和算法庫,簡化了許多編程任務,而且幾乎C++標準庫函數都是使用模板實現的。
STL分爲三類:
容器(container):用於容納其它類型的類對象,STL提供如向量、列表等諸多不同特性的容器。
1.順序容器 vector,list,deque
2.關聯容器 set,multiset,map,multimap
3.容器適配器)stack,queue,priority_queue
迭代器(iterator):是一種智能指針,用於指向容器中或者流中的對象,並提供一定的訪問方法。
1. 輸入迭代器(input iterator)
2.輸出迭代器(output iterator)
3.向前迭代器(forward iterator
4.雙向迭代器(bidirectional iterator)
5.隨楨訪問迭代器(random-access iterator)
算法(algorithm):它是STL的核心部分,提供一系列處理元素的特殊方法,如對容器中的元素進行排序、搜索等操作。
STL提代了80多種算法,基本分爲三大類:
1.非修改性算法,這種算法不修改容器 內容,只是從容器中獲取信息。比如:find(),find_end(),lower_bound(),search()等。
2.修改性算法,通過插入,刪除,重排等操作改變容器中包含的元素,以改變元素的值,比如:copy(),swap(),replace(),remove(),rotate()等。
3.排序,合併和相關操作,改變容器中序列的順序。比如:sort(),binary_search(),merge(),min(),max()等。