std::pair::pair

来自cppreference.com
< cpp‎ | utility‎ | pair

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 起)


构造一个新的对.
原文:
Constructs a new pair.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
1)
默认构造函数。值初始化的两个元素对,firstsecond.
原文:
Default constructor. Value-initializes both elements of the pair, first and second.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
2)
初始化firstxsecondy.
原文:
Initializes first with x and second with y.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
3)
初始化firststd::forward<U1>(x)secondstd::forward<U2>(y).
原文:
Initializes first with std::forward<U1>(x) and second with std::forward<U2>(y).
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
4)
初始化firstp.firstsecondp.second.
原文:
Initializes first with p.first and second with p.second.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
5)
初始化firststd::move<U1>(p.first)secondstd::move<U2>(p.second).
原文:
Initializes first with std::move<U1>(p.first) and second with std::move<U2>(p.second).
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
6)
前锋first_args的构造函数first的元素,并转发second_argssecond的构造函数中的元素。这是唯一的非默认构造函数,可以用来创建一个对不可复制的非动产类型.
原文:
Forwards the elements of first_args to the constructor of first and forwards the elements of second_args to the constructor of second. This is the only non-default constructor that can be used to create a pair of non-copyable non-movable types.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
7)
拷贝构造函数是隐式产生的
原文:
Copy constructor is implicitly generated.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
8)
移动构造函数隐式产生的
原文:
Move constructor is implicitly generated.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 参数

x -
这对的第一个元素的值来初始化
原文:
value to initialize the first element of this pair
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
y -
值初始化这对第二元件
原文:
value to initialize the second element of this pair
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
p -
对用于初始化这对两个元素的值
原文:
pair of values used to initialize both elements of this pair
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
first_args -
元组构造函数的参数,这对来初始化的第一个元素
原文:
tuple of constructor arguments to initialize the first element of this pair
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
second_args -
元组构造函数的参数,这对初始化第二个元素
原文:
tuple of constructor arguments to initialize the second element of this pair
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

#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对象
(函数模板) [编辑]