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 解包為單獨的物件 (函式模板) |