名稱空間
變體
操作

std::pair

來自 cppreference.com
< cpp‎ | 工具
 
 
 
 
在標頭檔案 <utility> 中定義
template<

    class T1,
    class T2

> struct pair;

std::pair 是一個類模板,它提供一種方式來將兩個異構物件儲存為單個單元。pair 是 std::tuple 的一個特例,它有兩個元素。

如果 T1T2 都不是可能帶有 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 中的值
(函式模板) [編輯]
特化 std::swap 演算法
(函式模板) [編輯]
訪問 pair 的元素
(函式模板) [編輯]

[編輯] 輔助類

獲取 pair 的大小
(類模板特化) [編輯]
獲取 pair 元素的型別
(類模板特化) [編輯]
確定兩個 pair 的公共引用型別
(類模板特化) [編輯]
確定兩個 pair 的公共型別
(類模板特化) [編輯]
pair 的格式化支援
(類模板特化) [編輯]

[編輯] 輔助特化

template< class T, class U >

constexpr bool enable_nonlocking_formatter_optimization<std::pair<T, U>> =
    enable_nonlocking_formatter_optimization<T> &&

    enable_nonlocking_formatter_optimization<U>;
(C++23 起)

TU 都啟用時,std::enable_nonlocking_formatter_optimization 的此特化允許高效實現 std::printstd::println 以列印 pair 物件。

[編輯] 推導指南(C++17 起)

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 2796 C++98 pair 解構函式的平凡性未指定 已指定

[編輯] 另請參閱

(C++11)
實現固定大小容器,容納可能不同型別的元素
(類模板) [編輯]
(C++11)
建立左值引用 tuple 或將 tuple 解包為單獨的物件
(函式模板) [編輯]