“STL” 和 “C++ 標準庫” 之間有什麼區別?
標準模板庫 (STL) 是 C++ 程式語言的一個軟體庫,它影響了 C++ 標準庫的許多部分。它提供了四個元件,稱為演算法、容器、函式和迭代器。請注意,術語“STL”或“標準模板庫”在 ISO 14882 C++ 標準中任何地方都沒有出現。因此,將 C++ 標準庫稱為 STL 是錯誤的,即 STL 和 C++ 標準庫是兩件不同的事情,前者是後者的子集。
STL 包括
容器
STL 包含序列容器和關聯容器。容器是儲存資料的物件。標準序列容器包括 vector、deque 和 list。標準關聯容器包括 set、multiset、map、multimap、hash_set、hash_map、hash_multiset 和 hash_multimap。還有容器介面卡 queue、priority_queue 和 stack,它們是具有特定介面的容器,使用其他容器作為實現。
迭代器
迭代器是一個物件,它使程式設計師能夠遍歷容器。STL 實現五種不同型別的迭代器:輸入(用於讀取一系列值)、輸出(用於寫入一系列值)、前向(可以讀取、寫入和向前移動)、雙向(像前向迭代器,但也可以向後移動)和隨機訪問(在一個操作中自由移動任意步數)。迭代器是 STL 通用性的主要特徵。
演算法
STL 中的演算法是專門設計用於在元素範圍內使用的函式集合。範圍是可以透過迭代器或指標訪問的任何物件序列,例如陣列或一些 STL 容器的例項。STL 中演算法的示例:sort(對範圍內的元素進行排序)、binary_search(測試某個值是否存在於排序序列中)、min_element(返回範圍內的最小元素)等。請注意,所有這些演算法都可以應用於作為模板接受的任何資料型別。
在 C++ 程式語言中,C++ 標準庫是類和函式的集合,這些類和函式是用核心語言編寫的,並且是 C++ ISO 標準本身的一部分。C++ 標準庫提供了一些通用容器、用於利用和操作這些容器的函式、函式物件、通用字串和流(包括互動式和檔案 I/O)、對某些語言特性的支援以及用於日常任務的函式,例如查詢數字的平方根。以下是 C++ 標準庫的一些特性:
流
這些庫用於處理 C++ 中可用的不同型別的流。例如,一個流通常表示檔案流,並且此類可用於建立檔案、將資訊寫入檔案以及從檔案讀取資訊,一個流表示字串流,並且通常用於操作字串等。
容器
這是一個類集合,用於以各種資料型別(如向量、集合、對映、棧、佇列等)儲存資料。這些是 STL 的一個元件。
通用庫
諸如演算法、Chrono 用於時間、迭代器、記憶體等的庫。
數值庫
此庫是 C++ 程式可用於執行半數值運算的元件集合。例如, <complex> 定義了一個類模板,以及用於表示和操作複數的眾多函式,<random> 用於生成(偽)隨機數等。
執行緒
這是在 C++11 中引入的庫,它基本上處理併發性。
C 標準庫
C 標準庫中的每個標頭檔案都在 C++ 標準庫中以不同的名稱包含,該名稱透過刪除 .h 並以 'c' 開頭生成;例如,'time.h' 變成 'ctime'。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP