std::pair
出自 cppreference.com
| 定義於標頭檔 <utility> |
||
| template< class T1, |
||
std::pair 是一個類別模板,提供了一種將兩個異質物件儲存為單一單元的方法。pair 是 std::tuple 的一種特殊情況,包含兩個元素。
若 T1 與 T2 皆非具有非平凡解構函式的 cv 限定類別型別(或其陣列),則 pair 的解構函式為平凡的。
目錄 |
[編輯] 模板參數
| T1, T2 | - | pair 所儲存元素的型別。 |
[編輯] 成員型別
| 成員型別 | 定義 |
first_type
|
T1
|
second_type
|
T2
|
[編輯] 成員物件
| 成員名稱 | 類型 |
first
|
T1
|
second
|
T2
|
[編輯] 成員函式
建構新的 pair(公開成員函式) | |
| 賦值內容 (公開成員函式) | |
| (C++11) |
交換內容 (公開成員函式) |
[編輯] 非成員函式
建立一個由參數型別決定的 pair 物件(函式模板) | |
| (於 C++20 中移除)(於 C++20 中移除)(於 C++20 中移除)(於 C++20 中移除)(於 C++20 中移除)(自 C++20 起) |
按字典序比較 pair 中的值(函式模板) |
| (C++11) |
特化 std::swap 演算法 (函式模板) |
| (C++11) |
存取 pair 中的元素(函式模板) |
[編輯] 輔助類別
| (C++11) |
取得 pair 的大小(類別模板特化) |
取得 pair 中元素的型別(類別模板特化) | |
決定兩個 pair 的共同參考型別(類別模板特化) | |
| (C++23) |
決定兩個 pair 的共同型別(類別模板特化) |
| (C++23) |
對 pair 的格式化支援(類別模板特化) |
[編輯] 輔助特化
| template< class T, class U > constexpr bool enable_nonlocking_formatter_optimization<std::pair<T, U>> = |
(自 C++23 起) | |
此 std::enable_nonlocking_formatter_optimization 特化,使得當 T 與 U 皆啟用此功能時,能對 pair 物件進行 std::print 與 std::println 的高效實作。
[編輯] 推導指引 (Deduction guides)(C++17 起)
[編輯] 缺陷報告
下列更改行為的缺陷報告追溯應用於之前的 C++ 標準。
| DR | 應用於 | 出版時的行為 | 正確的行為 |
|---|---|---|---|
| LWG 2796 | C++98 | pair 解構函式的平凡性未明確定義 |
已指定 |
[編輯] 參見
| (C++11) |
實作固定大小的容器,可儲存不同型別的元素 (類別模板) |
| (C++11) |
建立一個左值引用 tuple 或將 tuple 解包為單獨的物件 (函式模板) |