
- C 標準庫
- C 標準庫
- C++ 標準庫
- C++ 庫 - 首頁
- C++ 庫 - <fstream>
- C++ 庫 - <iomanip>
- C++ 庫 - <ios>
- C++ 庫 - <iosfwd>
- C++ 庫 - <iostream>
- C++ 庫 - <istream>
- C++ 庫 - <ostream>
- C++ 庫 - <sstream>
- C++ 庫 - <streambuf>
- C++ 庫 - <atomic>
- C++ 庫 - <complex>
- C++ 庫 - <exception>
- C++ 庫 - <functional>
- C++ 庫 - <limits>
- C++ 庫 - <locale>
- C++ 庫 - <memory>
- C++ 庫 - <new>
- C++ 庫 - <numeric>
- C++ 庫 - <regex>
- C++ 庫 - <stdexcept>
- C++ 庫 - <string>
- C++ 庫 - <thread>
- C++ 庫 - <tuple>
- C++ 庫 - <typeinfo>
- C++ 庫 - <utility>
- C++ 庫 - <valarray>
- C++ STL 庫
- C++ 庫 - <array>
- C++ 庫 - <bitset>
- C++ 庫 - <deque>
- C++ 庫 - <forward_list>
- C++ 庫 - <list>
- C++ 庫 - <map>
- C++ 庫 - <multimap>
- C++ 庫 - <queue>
- C++ 庫 - <priority_queue>
- C++ 庫 - <set>
- C++ 庫 - <stack>
- C++ 庫 - <unordered_map>
- C++ 庫 - <unordered_set>
- C++ 庫 - <vector>
- C++ 庫 - <algorithm>
- C++ 庫 - <iterator>
- C++ 高階庫
- C++ 庫 - <any>
- C++ 庫 - <barrier>
- C++ 庫 - <bit>
- C++ 庫 - <chrono>
- C++ 庫 - <cinttypes>
- C++ 庫 - <clocale>
- C++ 庫 - <condition_variable>
- C++ 庫 - <coroutine>
- C++ 庫 - <cstdlib>
- C++ 庫 - <cstring>
- C++ 庫 - <cuchar>
- C++ 庫 - <charconv>
- C++ 庫 - <cfenv>
- C++ 庫 - <cmath>
- C++ 庫 - <ccomplex>
- C++ 庫 - <expected>
- C++ 庫 - <format>
- C++ 庫 - <future>
- C++ 庫 - <flat_set>
- C++ 庫 - <flat_map>
- C++ 庫 - <filesystem>
- C++ 庫 - <generator>
- C++ 庫 - <initializer_list>
- C++ 庫 - <latch>
- C++ 庫 - <memory_resource>
- C++ 庫 - <mutex>
- C++ 庫 - <mdspan>
- C++ 庫 - <optional>
- C++ 庫 - <print>
- C++ 庫 - <ratio>
- C++ 庫 - <scoped_allocator>
- C++ 庫 - <semaphore>
- C++ 庫 - <source_location>
- C++ 庫 - <span>
- C++ 庫 - <spanstream>
- C++ 庫 - <stacktrace>
- C++ 庫 - <stop_token>
- C++ 庫 - <syncstream>
- C++ 庫 - <system_error>
- C++ 庫 - <string_view>
- C++ 庫 - <stdatomic>
- C++ 庫 - <variant>
- C++ STL 庫速查表
- C++ STL - 速查表
C++ 庫 - <deque>
簡介
Deque 是**雙端佇列**(Double Ended Queue) 的縮寫。它是一個可以在執行時改變大小的序列容器。容器是一個儲存相同型別資料的物件。序列容器嚴格按照線性順序儲存元素。
Deque 的元素可以分散在記憶體的不同塊中。容器儲存必要的資訊,以便能夠在恆定時間內直接訪問任何元素。與向量不同,Deque 不保證將其所有元素儲存在連續的記憶體位置。因此,它不允許透過偏移指標來直接訪問資料。但是,它可以使用下標運算子 [] 直接訪問任何元素。
Deque 可以根據需要在執行時從兩端收縮或擴充套件。儲存需求由內部分配器自動滿足。Deque 提供與向量類似的功能,但提供了從任何一端高效插入和刪除資料的方法。
大小為零的 Deque 也是有效的。在這種情況下,deque.begin() 和 deque.end() 指向相同的位置。但是,呼叫 front() 或 back() 的行為是未定義的。
定義
以下是 <deque> 標頭檔案中 std::deque 的定義
template < class T, class Alloc = allocator<T> > class deque;
引數
T − 包含的元素的型別。
T 可以被任何其他資料型別替換,包括使用者定義型別。
Alloc − 分配器物件的型別。
預設情況下,使用分配器類模板,它定義了最簡單的記憶體分配模型,並且與值無關。
成員型別
以下成員型別可以用作成員函式的引數或返回型別。
序號 | 成員型別 | 定義 |
---|---|---|
1 | value_type | T(模板的第一個引數) |
2 | allocator_type | Alloc(模板的第二個引數) |
3 | reference | value_type& |
4 | const_reference | const value_type& |
5 | pointer | value_type* |
6 | const_pointer | const value_type* |
7 | iterator | 指向 value_type 的隨機訪問迭代器 |
8 | const_iterator | 指向 const value_type 的隨機訪問迭代器 |
9 | reverse_iterator | std::reverse_iterator <iterator> |
10 | const_reverse_iterator | std::reverse_iterator <const_iterator> |
11 | size_type | size_t |
12 | difference_type | ptrdiff_t |
來自 <deque> 的函式
以下是 <deque> 標頭檔案中所有方法的列表。
建構函式
序號 | 方法和描述 |
---|---|
1 | deque::deque
預設建構函式
構造一個包含零個元素的空 deque。 |
2 | deque::deque 填充建構函式
構造一個新的 deque,其中包含n個元素,並將val賦值給 deque 的每個元素 |
3 | deque::deque 範圍建構函式
構造一個 deque,其元素數量與first到last. |
4 | deque::deque 的範圍一樣多。
複製建構函式 |
5 | deque::deque 構造一個 deque,其中包含現有容器中每個元素的副本。
移動建構函式 |
6 | deque::deque 使用移動語義構造一個包含其他內容的 deque。
初始化列表建構函式 |
從初始化列表構造一個 deque。
序號 | 方法和描述 |
---|---|
1 | 解構函式
deque::~deque |
透過釋放其記憶體來銷燬 deque 物件。
序號 | 方法和描述 |
---|---|
1 | 成員函式
deque::assign |
2 | 透過替換舊值來為 deque 元素分配新值。
deque::atn返回 deque 中位置 |
3 | 處元素的引用。
deque::back |
4 | 返回對 deque 的最後一個元素的引用。
deque::begin |
5 | 返回一個指向 deque 的第一個元素的隨機訪問迭代器。
deque::cbegin |
6 | 返回一個指向 deque 開頭的常量隨機訪問迭代器。
deque::cbegin |
7 | deque::cend
deque::clear |
8 | 透過從 deque 中刪除所有元素並將 deque 的大小設定為零來銷燬 deque。
deque::crbegin |
9 | 返回一個指向容器反向開頭的常量反向迭代器。
deque::crend |
10 | 返回一個指向 deque 反向結尾的常量反向迭代器。
deque::emplace透過在. |
11 | position
處插入新元素來擴充套件容器 |
12 | deque::emplace_back
在 deque 的末尾插入新元素。 |
13 | deque::emplace_front
在 deque 的開頭插入新元素。 |
14 | deque::empty
測試 deque 是否為空。deque::end返回一個指向 deque 容器中 |
15 | 末尾元素之後的位置
的迭代器。 |
16 | deque::erase
從 deque 中刪除單個元素。 |
17 | deque::front
返回對 deque 的第一個元素的引用 |
18 | deque::get_allocator
返回與 deque 關聯的分配器 |
19 | deque::insert
透過在 deque 中插入新元素來擴充套件容器。 |
20 | deque::max_size
返回 deque 可以容納的最大元素數。 |
21 | deque::operator=
透過替換舊內容來為 deque 分配新內容,並在必要時修改大小。n. |
22 | deque::operator[]
返回 deque 中位置 |
23 | 處元素的引用。
deque::pop_back |
24 | 從 deque 中刪除最後一個元素,並將 deque 的大小減一。
deque::pop_front |
25 | 從 deque 中刪除第一個元素,並將 deque 的大小減一。
deque::push_back |
26 | 在 deque 的末尾插入新元素,並將 deque 的大小加一。
deque::push_front |
27 | 在 deque 的開頭插入新元素,並將 deque 的大小加一。
deque::rbegin |
28 | 返回一個指向 deque 的最後一個元素的反向迭代器。
deque::rend |
29 | 返回一個指向 deque 反向結尾的反向迭代器。
deque::resize |
30 | 更改 deque 的大小。
deque::shrink_to_fit |
31 | 請求容器將其容量減小以適應其大小。
deque::size |
返回 deque 中存在的元素數。
序號 | 方法和描述 |
---|---|
1 | deque::swap
將 deque 的內容與另一個 deque 的內容交換。 |
2 | 非成員過載函式
將 deque 的內容與另一個 deque 的內容交換。 |
3 | operator==
測試兩個 deque 是否相等。 |
4 | operator!=
operator< |
5 | 測試第一個 deque 是否小於另一個 deque。
operator<= |
6 | 測試第一個 deque 是否小於或等於另一個 deque。
operator> |