名前空間
変種
操作

std::pair::pair

提供: cppreference.com
< cpp‎ | utility‎ | pair
 
 
 
std::pair
メンバ関数
Original:
Member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
pair::pair
pair::operator=
pair::swap
非メンバ関数
Original:
Non-member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
make_pair
operator=
operator!=
operator<
operator<=
operator>
operator>=
std::swap
get(C++11)
ヘルパークラス
Original:
Helper classes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
tuple_size(C++11)
tuple_element(C++11)
 
pair();
constexpr pair();
(1) (C++11以前)
(C++11およびそれ以降)
pair( const T1& x, const T2& y );
(2)
template< class U1, class U2 >
pair( U1&& x, U2&& y );
(3) (C++11およびそれ以降)
template< class U1, class U2 >
pair( const pair<U1,U2>& p );
(4)
template< class U1, class U2 >
pair( pair<U1,U2>&& p );
(5) (C++11およびそれ以降)
template< class... Args1, class... Args2 >

pair( std::piecewise_construct_t,
      std::tuple<Args1...> first_args,

      std::tuple<Args2...> second_args );
(6) (C++11およびそれ以降)
pair( const pair& p ) = default;
(7)
pair( pair&& p ) = default;
(8) (C++11およびそれ以降)


新しくペアを構築します.

1) デフォルトのコンストラクタです.ペアの要素firstsecondの両方を値初期化します.

2) firstxで、secondyで初期化します.

3) firststd::forward<U1>(x)で、secondstd::forward<U2>(y)で初期化します.

4) firstp.firstで、secondp.secondで初期化します.

5) firststd::move<U1>(p.first)で、secondstd::move<U2>(p.second)で初期化します.

6) first_argsの要素をfirstのコンストラクタに転送し、second_argssecondのコンストラクタに転送します。これは、コピー不可かつムーブ不可な型のペアを作成するために使用できる唯一の​​非デフォルトコンストラクタです.

7) 暗黙的に生成されたコピーコンストラクタ.

8) 暗黙的に生成されたムーブコンストラクタ.

[編集] パラメータ

x - このペアの最初の要素を初期化する値
y - このペアの2番目の要素を初期化するための値
p - このペアの両方の要素を初期化するために使用される値のペア
first_args - このペアの最初の要素を初期化するコンストラクタの引数のタプル
second_args - このペアの2番目の要素を初期化するコンストラクタの引数のタプル

[編集]

#include <utility>
#include <string>
#include <complex>
#include <tuple>
#include <iostream>
int main()
{
    std::pair<int, float> p1;
    std::cout << "Value-initialized: "
              << p1.first << ", " << p1.second << '\n';
 
    std::pair<int, double> p2(42, 0.123);
    std::cout << "Initialized with two values: "
              << p2.first << ", " << p2.second << '\n';
 
    std::pair<char, int> p4(p2);
    std::cout << "Implicitly converted: "
              << p4.first << ", " << p4.second << '\n';
 
    std::pair<std::complex<double>, std::string> p6(
                    std::piecewise_construct, 
                    std::forward_as_tuple(0.123, 7.7),
                    std::forward_as_tuple(10, 'a'));
    std::cout << "Piecewise constructed: "
              << p6.first << ", " << p6.second << '\n';
}

出力:

Value-initialized: 0, 0
Initialized with two values: 42, 0.123
Implicitly converted: *, 0
Piecewise constructed: (0.123,7.7), aaaaaaaaaa

[編集] 参照

引数の型によって定義されたタイプのpairオブジェクトを作成します
Original:
creates a pair object of type, defined by the argument types
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(関数テンプレート) [edit]