std::get(std::pair)
提供: cppreference.com
ヘッダ <utility> で定義 | ||
(1) | ||
template< size_t I, class T1, class T2 > typenamestd::tuple_element<I, std::pair<T1,T2>>::type& | (1) | (C++11以上) (C++14未満) |
template< size_t I, class T1, class T2 > constexprstd::tuple_element_t<I, std::pair<T1,T2>>& | (1) | (C++14以上) |
(2) | ||
template< size_t I, class T1, class T2 > consttypenamestd::tuple_element<I, std::pair<T1,T2>>::type& | (2) | (C++11以上) (C++14未満) |
template< size_t I, class T1, class T2 > constexprconststd::tuple_element_t<I, std::pair<T1,T2>>& | (2) | (C++14以上) |
(3) | ||
template< size_t I, class T1, class T2 > typenamestd::tuple_element<I, std::pair<T1,T2>>::type&& | (3) | (C++11以上) (C++14未満) |
template< size_t I, class T1, class T2 > constexprstd::tuple_element_t<I, std::pair<T1,T2>>&& | (3) | (C++14以上) |
template< size_t I, class T1, class T2 > constexprconststd::tuple_element_t<I, std::pair<T1,T2>>&& | (4) | (C++17以上) |
template<class T, class U> constexpr T& get(std::pair<T, U>& p)noexcept; | (5) | (C++14以上) |
template<class T, class U> constexprconst T& get(conststd::pair<T, U>& p)noexcept; | (6) | (C++14以上) |
template<class T, class U> constexpr T&& get(std::pair<T, U>&& p)noexcept; | (7) | (C++14以上) |
template<class T, class U> constexprconst T&& get(conststd::pair<T, U>&& p)noexcept; | (8) | (C++17以上) |
template<class T, class U> constexpr T& get(std::pair<U, T>& p)noexcept; | (9) | (C++14以上) |
template<class T, class U> constexprconst T& get(conststd::pair<U, T>& p)noexcept; | (10) | (C++14以上) |
template<class T, class U> constexpr T&& get(std::pair<U, T>&& p)noexcept; | (11) | (C++14以上) |
template<class T, class U> constexprconst T&& get(conststd::pair<U, T>&& p)noexcept; | (12) | (C++17以上) |
タプルライクなインタフェースを使用してペアから要素を取り出します。
インデックスベースのオーバーロード (1-4) は、インデックス I
が0でも1でもなければ、コンパイルに失敗します。
型ベースのオーバーロード (5-12) は、型 T
と型 U
が等しい場合、コンパイルに失敗します。
目次 |
[編集]引数
p | - | 内容を取り出すペア |
[編集]戻り値
1-4)
I==0
の場合は p.first
を指す参照、 I==1
の場合は p.second
を指す参照を返します。5-8)
p.first
を指す参照を返します。9-12)
p.second
を指す参照を返します。[編集]例外
Run this code
#include <iostream>#include <utility> int main(){auto p =std::make_pair(1, 3.14);std::cout<<'('<< std::get<0>(p)<<", "<< std::get<1>(p)<<")\n";std::cout<<'('<< std::get<int>(p)<<", "<< std::get<double>(p)<<")\n";}
出力:
(1, 3.14) (1, 3.14)
[編集]関連項目
タプルの指定された要素にアクセスします (関数テンプレート) | |
array の要素にアクセスします (関数テンプレート) | |
(C++17) | 指定されたインデックスまたは型 (一意な場合) の値を variant から読み込みます。 エラーの場合は例外を投げます (関数テンプレート) |