c++標准模版庫中,容器總共分為三類:順序容器、關聯容器、容器適配器。 順序容器是一種線性結構的可序群集,底層實現依靠鏈表或數組。 關聯容器是一種非線性的樹結構,數據以鍵值的格式保存。 這兩種在上上面兩篇文章中具體介紹到,第三種容器為容器適配器。 適配器顧名思義,就是讓一個對象的行為符合另一個對象的行為的機制。容器適配器,就是一個接口,它讓一種已存在的容器類型采用另一種不同的抽象類型的工作方式實現。c++ STL 中包含三種適配器:棧stack 、隊列queue 和優先級priority_queue。www.2cto.com STL 中提供的三種適配器可以由某一種順序容器去實現。默認下stack 和queue 基於deque 容器實現,priority_queue 則基於vector 容器實現。當然在創建一個適配器時也可以指定具體的實現容器,創建適配器時在第二個參數上指定具體的順序容器可以覆蓋適配器的默認實現。 由於適配器的特點,一個適配器不是可以由任一個順序容器都可以實現的。 棧stack 的特點是後進先出,所以它關聯的基本容器可以是任意一種順序容器,因為這些容器類型結構都可以提供棧的操作有求,它們都提供了push_back 、pop_back 和back 操作; 隊列queue 的特點是先進先出,適配器要求其關聯的基礎容器必須提供pop_front 操作,因此其不能建立在vector 容器上; 優先級隊列priority_queue 適配器要求提供隨機訪問功能,因此不能建立在list 容器上。