日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++之deque

發布時間:2023/12/9 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++之deque 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

From: http://blog.csdn.net/zxjzxj521/article/details/8172953

1 什么是STL

??????? STL就是C++ Standard Template Library,也就是標準模版庫,是一個高效的C++程序庫。STL包含六大組件:容器(container)、算法(algorithm)、迭代器(iterator)、配置器(allocator)、適配器(adapter)和函數對象(function object)。我們在學習這些組件時,應該按其重要程度來區別學習。重要成都由大到小是:泛型容器和泛型算法(表示任何類型和對象都可以使用這些容器和算法)>>迭代器>>配置器、適配器、函數對象。

??????? STL的主要頭文件包括13個,分別是<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<numeric>、<memory>、<queue>、<set>、<stack>、<utility>,具體內容如表1所示。

表1 STL的主要頭文件

頭文件

內容

<deque>

deque的定義

<vector>

vector的定義

<list>

list的定義

<map>

map、multimap的定義

<set>

set、multiset的定義

<algorithm>

和<numeric>定義了STL的通用算法

<numeric>

和<algorithm>定義了STL的通用算法

<iterator>

所有在容器類型中定義的迭代器的祖先定義

<utility>

定義了pair,定義了基本的iterator

<memory>

主要是智能指針auto_ptr的定義和一些全局臨時內存處理函數的定義;頭文件包含了另一個重要頭文件<xmemory>,主要是空間配置器allocator的定義

<queue>

queue、priority_queue的定義

<stack>

stack的定義

<functional>

通用函數對象的定義

? ??????? 用概括性的語言來說,STL的各部分作用是:
    • 為了方便地存儲數據,設計了容器;
    • 為了方便地遍歷、查找、替換容器中的元素,設計了算法;
    • 為了方便地讓容器、算法獨立工作,設計了在二者之間起橋梁作用的迭代器;
    • 為了統一分配和控制容器中的內存,設計了配置器;
    • 為了更好地給算法傳入參數,設計了函數對象;
    • 為了更好地擴展STL現有的接口,設計了適配器。

2 STL的歷史???????

??????? 在STL的發展史中,總共產生了5個版本。 2.1 HP STL——第一個STL版本 ??????? HP STL版本,就是惠普版本的STL庫,是所有其他STL版本的鼻祖。其他版本的STL都是在此版本的基礎上加以改進和實現的。 2.2 P.J. Plauger STL——Microsoft Visual C++的STL版本 ??????? P.J. Plauger STL版本是由P.J. Plauger個人實現的,是HP STL版本的繼承版本。Microsoft Visual C++中的STL庫用的就是P.J. Plauger STL版本。P.J. Plauger STL版本不是開放源代碼的,它的元代那是不能修改或銷售的。 2.3 Rouge Wave STL——Borland C++ Builder5.0的STL版本 ??????? Rouge Wave STL版本是由Rouge Wave公司開發的,也是HP STL版本的繼承版本。該版本被Borland C++ Builder5.0所采用,可惜的是由于該版本長時間沒有被更新過且它不完全符合STL標準,最后被棄用。 2.4 STLport——Borland C++ Builder6.0的STL版本 ??????? STLport版本的STL最開始是俄羅斯人的一個開發項目,主要用途是把UNIX下的SGI STL代碼一直到其他平臺的主流編譯器上,例如C++ Borland或Visual C++等。STLport版本的STL符合ANSI/C++的STL標準,因此也更容易移植。Borland C++ Builder6.0中的STL用的就是STLport版本。 2.5 SGI STL——GCC的STL版本 ??????? SGI STL室友Silicon Graphics Computer System,Inc公司開發的,SGI STL同樣也是HP STL版本的繼承版本。Linux下的GCC編譯器采用的正式SGI STL版本。GCC對C++語言標準的支持非常好,SGI STL在Linux平臺上的性能非常出色。SGI STL是屬于開發源代碼的,因此讀者可以修改和銷售SGISTL版本。

總結

以上是生活随笔為你收集整理的C++之deque的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。