命名空間
變體
動作

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

[編輯] 成員物件

成員名稱 類型
first T1
second T2

[編輯] 成員函式

建構新的 pair
(公開成員函式) [編輯]
賦值內容
(公開成員函式) [編輯]
(C++11)
交換內容
(公開成員函式) [編輯]

[編輯] 非成員函式

建立一個由參數型別決定的 pair 物件
(函式模板) [編輯]
(於 C++20 中移除)(於 C++20 中移除)(於 C++20 中移除)(於 C++20 中移除)(於 C++20 中移除)(自 C++20 起)
按字典序比較 pair 中的值
(函式模板) [edit]
特化 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 起)

std::enable_nonlocking_formatter_optimization 特化,使得當 TU 皆啟用此功能時,能對 pair 物件進行 std::printstd::println 的高效實作。

[編輯] 推導指引 (Deduction guides)(C++17 起)

[編輯] 缺陷報告

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

DR 應用於 出版時的行為 正確的行為
LWG 2796 C++98 pair 解構函式的平凡性未明確定義 已指定

[編輯] 參見

(C++11)
實作固定大小的容器,可儲存不同型別的元素
(類別模板) [編輯]
(C++11)
建立一個左值引用 tuple 或將 tuple 解包為單獨的物件
(函式模板) [編輯]
English Deutsch 日本語 中文(简体) 中文(繁體)