
- 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++ 程式設計資源
- C++ 程式設計教程
- C++ 有用資源
- C++ 討論
C++ 庫 - <list>
介紹
列表是一個常用的序列容器。容器是一個儲存相同型別資料的物件。列表容器實現為雙向連結串列,因此它提供了對其資料的雙向順序訪問。
列表不提供快速的隨機訪問,它只支援雙向順序訪問。列表允許在序列中的任何位置進行插入和刪除操作,時間複雜度為O(1)。
列表的元素可以散佈在記憶體的不同塊中。容器儲存必要的資訊以允許順序訪問其資料。列表可以在執行時從兩端根據需要收縮或擴充套件。儲存需求由內部分配器自動滿足。
零大小的列表也是有效的。在這種情況下,list.begin() 和 list.end() 指向相同的位置。但是呼叫 front() 或 back() 的行為是未定義的。
定義
以下是來自 <list> 標頭檔案的 std::list 的定義
template < class T, class Alloc = allocator<T> > class list;
引數
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 |
來自 <list> 的函式
以下是 <list> 標頭檔案中所有方法的列表。
建構函式
序號 | 方法和描述 |
---|---|
1 | list::list
預設建構函式 構造一個包含零個元素的空列表。 |
2 | list::list 填充建構函式
構造一個新的列表,包含n個元素,並將val賦值給列表的每個元素。 |
3 | list::list 填充建構函式
構造一個新的列表,包含n元素,並將零值賦值給列表的每個元素。 |
4 | list::list 範圍建構函式
構造一個列表,其元素數量與first到last. |
5 | list::list 的範圍中的元素數量相同。
複製建構函式 |
6 | list::list 構造一個列表,其中包含現有列表中每個元素的副本。
移動建構函式使用移動語義構造一個包含other |
7 | list::list 內容的列表。 移動建構函式使用移動語義構造一個包含other |
初始化列表建構函式
序號 | 方法和描述 |
---|---|
1 | 解構函式
list::~list |
透過釋放其記憶體來銷燬列表物件。
序號 | 方法和描述 |
---|---|
1 | 成員函式 list::assign 範圍版本 |
2 | 成員函式 透過替換舊值來為列表賦值新值。 填充版本 |
3 | 成員函式 透過替換舊值來為列表賦值新值。 填充版本 |
4 | 初始化列表版本
list::back |
5 | 返回對列表的最後一個元素的引用。
list::begin |
6 | 返回一個指向列表第一個元素的隨機訪問迭代器。
list::cbegin |
7 | 返回一個指向列表開頭的常量隨機訪問迭代器。
list::cend |
8 | 返回一個指向列表結尾的常量隨機訪問迭代器。
list::clear |
9 | 透過從列表中刪除所有元素並將列表的大小設定為零來銷燬列表。
list::crbegin |
10 | 返回一個指向列表最後一個元素的常量反向迭代器。
list::crend |
11 | 返回一個指向列表中第一個元素之前的理論元素的常量反向迭代器。
list::emplace |
12 | 透過在給定位置插入新元素來擴充套件列表。
list::emplace_back |
13 | 在列表末尾插入新元素,並將列表大小增加一。
list::emplace_front |
14 | 在列表開頭插入新元素,並將列表大小增加一。
list::empty |
15 | 測試列表是否為空。
list::end |
16 | 返回一個指向列表最後一個元素的隨機訪問迭代器。list::erase 位置版本 |
17 | 返回一個指向列表最後一個元素的隨機訪問迭代器。list::assign 從列表中刪除單個元素。 |
18 | 從列表中刪除元素範圍。
list::front |
19 | 返回對列表第一個元素的引用。
list::get_allocator |
20 | 返回與列表關聯的分配器。 list::insert 單個元素版本透過在position |
21 | 返回與列表關聯的分配器。 透過替換舊值來為列表賦值新值。 處插入新元素來擴充套件迭代器。 |
22 | 返回與列表關聯的分配器。 list::assign 處插入新元素來擴充套件迭代器。 |
23 | 返回與列表關聯的分配器。 透過在容器中插入新元素來擴充套件列表。 移動版本 |
24 | 返回與列表關聯的分配器。 透過替換舊值來為列表賦值新值。 透過在容器中插入新元素來擴充套件列表。 |
25 | 透過在容器中插入新元素來擴充套件列表
list::max_size |
26 | 返回列表可以容納的最大元素數。
list::merge |
27 | 返回列表可以容納的最大元素數。 將兩個已排序的列表合併為一個。 list::merge |
28 | 返回列表可以容納的最大元素數。 透過在容器中插入新元素來擴充套件列表。 比較函式 |
29 | 返回列表可以容納的最大元素數。 使用移動語義將兩個已排序的列表合併為一個。 比較函式 |
30 | 比較函式移動版本 list::operator= 複製版本 |
31 | 比較函式移動版本 透過在容器中插入新元素來擴充套件列表。 透過替換舊值來為列表賦值新內容。 |
32 | 比較函式移動版本 透過替換舊值來為列表賦值新值。 透過替換舊值來為列表賦值新內容。 |
33 | 為列表賦值新內容,替換舊內容。
list::pop_back |
34 | 從列表中刪除最後一個元素。
list::pop_front |
35 | 從列表中刪除第一個元素。
list::push_back |
36 | 從列表中刪除第一個元素。 透過在容器中插入新元素來擴充套件列表。 list::push_back |
37 | 在列表末尾插入新元素。
list::push_front |
38 | 在列表末尾插入新元素。 透過在容器中插入新元素來擴充套件列表。 list::push_front |
39 | 在列表開頭插入新元素。
list::rbegin |
40 | 返回一個指向列表最後一個元素的反向迭代器。
list::remove |
41 | 從列表中刪除與值匹配的元素。
list::remove_if |
42 | 從列表中刪除滿足條件的元素。
list::rend |
43 | 返回一個指向列表反向末尾的反向迭代器。
list::resize |
44 | 返回一個指向列表反向末尾的反向迭代器。 更改列表的大小。 list::resize |
45 | 值版本
list::reverse |
46 | 反轉列表中元素的順序。
list::size |
47 | 返回列表中存在的元素數量。
list::sort |
48 | 返回列表中存在的元素數量。 將兩個已排序的列表合併為一個。 list::sort |
49 | 對列表的元素進行排序。
list::splice |
50 | 對列表的元素進行排序。 將所有元素從列表轉移到 *this。 單個元素將迭代器指向的元素i從列表x轉移到. |
51 | 對列表的元素進行排序。 透過在容器中插入新元素來擴充套件列表。 *this從列表到轉移到將所有元素從列表 |
52 | 對列表的元素進行排序。 list::assign
轉移,使用移動語義。first到last將範圍內的元素轉移從列表到轉移到. |
53 | 對列表的元素進行排序。 從 單個元素移動版本將迭代器指向的元素i從列表x轉移到將所有元素從列表 |
54 | 對列表的元素進行排序。 將迭代器指向的元素轉移 轉移,使用移動語義。first到last將範圍內的元素轉移從列表到轉移到將所有元素從列表 |
55 | 範圍和移動版本
list::swap從列表. |
56 | 將列表的內容與另一個列表的內容交換。
list::unique |
57 | 將列表的內容與另一個列表的內容交換。
list::unique |
從列表中刪除所有連續的重複元素。
序號 | 方法和描述 |
---|---|
1 | 非成員過載函式
operator== |
2 | 測試兩個列表是否相等。
operator== |
3 | operator!=
operator< |
4 | 測試第一個列表是否小於另一個列表。
operator<= |
5 | 測試第一個列表是否小於或等於另一個列表。
operator> |
6 | 測試第一個列表是否大於另一個列表。
operator>= |
7 | 測試第一個列表是否大於或等於另一個列表。
swap |