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
|
[編輯] 成員物件
| 成員名稱 (Member name) | 型別 |
first
|
T1
|
second
|
T2
|
[編輯] 成員函式
構造新的 pair(public 成員函式) | |
| 賦值內容 (public 成員函式) | |
| (C++11) |
交換內容 (public 成員函式) |
[編輯] 非成員函式
建立型別由引數型別確定的 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 起) | |
當 T 和 U 都啟用時,std::enable_nonlocking_formatter_optimization 的此特化允許高效實現 std::print 和 std::println 以列印 pair 物件。
[編輯] 推導指南(C++17 起)
[編輯] 缺陷報告
下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。
| 缺陷報告 | 應用於 | 釋出時的行為 | 正確的行為 |
|---|---|---|---|
| LWG 2796 | C++98 | pair 解構函式的平凡性未指定 |
已指定 |
[編輯] 另請參閱
| (C++11) |
實現固定大小容器,容納可能不同型別的元素 (類模板) |
| (C++11) |
建立左值引用 tuple 或將 tuple 解包為單獨的物件 (函式模板) |